Added primitive support for the ISO C99 inline feature as well as the __inline__ extension.
No inlining is actually done but that part is not required by the standard.
This commit is contained in:
36
test/ref/inline-error.c
Normal file
36
test/ref/inline-error.c
Normal file
@@ -0,0 +1,36 @@
|
||||
/* C99 inline in declarations */
|
||||
|
||||
inline typedef int; /* Error */
|
||||
static inline int; /* Error */
|
||||
inline static int a1; /* Error */
|
||||
int inline (*fp1)(void); /* Error */
|
||||
typedef inline int f1_t(void); /* Error */
|
||||
inline int f1a(void); /* OK here warning later */
|
||||
inline extern int f1b(void); /* OK here warning later */
|
||||
extern inline int f1b(void); /* Same as above */
|
||||
inline static int f1c(void); /* OK here warning later */
|
||||
static inline int f1c(void); /* Same as above */
|
||||
|
||||
void foo(inline int x); /* Error */
|
||||
int a = sizeof (inline int); /* TODO: better error message */
|
||||
int b = sizeof (inline int (int)); /* TODO: better error message */
|
||||
|
||||
inline int main(void) /* Error */
|
||||
{
|
||||
inline typedef int; /* Error */
|
||||
static inline int; /* Error */
|
||||
extern inline int a2; /* Error */
|
||||
int inline (*fp2)(void); /* Error */
|
||||
typedef inline int f2_t(void); /* Error */
|
||||
inline int f2a(void); /* OK here warning later */
|
||||
inline extern int f2b(void); /* OK here warning later */
|
||||
extern inline int f2b(void); /* Same as above */
|
||||
|
||||
f1a(); /* Still imported */
|
||||
f1b(); /* Still imported */
|
||||
f1c(); /* Not imported */
|
||||
f2a(); /* Still imported */
|
||||
f2b(); /* Still imported */
|
||||
}
|
||||
|
||||
/* Warning: non-external inline functions declared but undefined in TU */
|
||||
Reference in New Issue
Block a user