implement "low hanging fruit" from C11

based on Gregor's patch sent to the list. includes:
- stdalign.h
- removing gets in C11 mode
- adding aligned_alloc and adjusting other functions to use it
- adding 'x' flag to fopen for exclusive mode
This commit is contained in:
Rich Felker
2012-08-25 23:15:13 -04:00
parent b5289fd749
commit 9bff7c133e
7 changed files with 75 additions and 49 deletions
+15
View File
@@ -0,0 +1,15 @@
#ifndef _STDALIGN_H
#define _STDALIGN_H
/* this whole header only works in C11 or with compiler extensions */
#if __STDC_VERSION__ < 201112L && defined( __GNUC__)
#define _Alignas(t) __attribute__((__aligned__(t)))
#define _Alignof(t) __alignof__(t)
#endif
#define alignas _Alignas
#define alignof _Alignof
#define __alignas_is_defined 1
#define __alignof_is_defined 1
#endif
+2
View File
@@ -90,7 +90,9 @@ int putc(int, FILE *);
int putchar(int);
char *fgets(char *, int, FILE *);
#if __STDC_VERSION__ < 201112L
char *gets(char *);
#endif
int fputs(const char *, FILE *);
int puts(const char *);
+1
View File
@@ -38,6 +38,7 @@ void *malloc (size_t);
void *calloc (size_t, size_t);
void *realloc (void *, size_t);
void free (void *);
void *aligned_alloc(size_t alignment, size_t size);
void abort (void);
int atexit (void (*) (void));