diff options
author | Joseph Myers <jsm@polyomino.org.uk> | 2004-09-13 22:00:33 +0100 |
---|---|---|
committer | Joseph Myers <jsm28@gcc.gnu.org> | 2004-09-13 22:00:33 +0100 |
commit | 61f4f1cc3d363590bec97bc8fb035064d617bd73 (patch) | |
tree | ba99baf31dd5640c618debd8f6de5121f2512a34 /gcc/testsuite/gcc.dg/inline-12.c | |
parent | b4cb0e432b123b1e152e9d35c0675495bde8fe72 (diff) | |
download | gcc-61f4f1cc3d363590bec97bc8fb035064d617bd73.zip gcc-61f4f1cc3d363590bec97bc8fb035064d617bd73.tar.gz gcc-61f4f1cc3d363590bec97bc8fb035064d617bd73.tar.bz2 |
c-decl.c (grokdeclarator): Correct comments about where storage class specifiers are rejected by grammar...
* c-decl.c (grokdeclarator): Correct comments about where storage
class specifiers are rejected by grammar and add corresponding
asserts. Diagnose typedefs and parameters declared inline.
Change warning for inline main to a pedwarn. Only diagnose inline
main if hosted.
(declspecs_add_scspec): Allow duplicate "inline".
testsuite:
* gcc.dg/declspec-7.c: Don't expect diagnostic for duplicate
"inline".
* gcc.dg/declspec-11.c: Update expected messages.
* gcc.dg/inline-6.c, gcc.dg/inline-7.c, gcc.dg/inline-8.c,
gcc.dg/inline-9.c, gcc.dg/inline-10.c, gcc.dg/inline-11.c,
gcc.dg/inline-12.c: New tests.
From-SVN: r87450
Diffstat (limited to 'gcc/testsuite/gcc.dg/inline-12.c')
-rw-r--r-- | gcc/testsuite/gcc.dg/inline-12.c | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/gcc/testsuite/gcc.dg/inline-12.c b/gcc/testsuite/gcc.dg/inline-12.c new file mode 100644 index 0000000..c793196 --- /dev/null +++ b/gcc/testsuite/gcc.dg/inline-12.c @@ -0,0 +1,14 @@ +/* Test misuses of inline. -pedantic-errors test. */ +/* Origin: Joseph Myers <jsm@polyomino.org.uk> */ +/* { dg-do compile } */ +/* { dg-options "-std=gnu99 -pedantic-errors" } */ + +/* These should perhaps be hard errors, but are pedwarns at + present. */ + +inline int a; /* { dg-error "error: variable 'a' declared 'inline'" } */ +inline int (*b)(void); /* { dg-error "error: variable 'b' declared 'inline'" } */ +typedef inline void c(void); /* { dg-error "error: typedef 'c' declared 'inline'" } */ +typedef inline int d; /* { dg-error "error: typedef 'd' declared 'inline'" } */ +void e(inline int f(void)); /* { dg-error "error: parameter 'f' declared 'inline'" } */ +void g(inline int(void)); /* { dg-error "error: parameter '\\({anonymous}\\)' declared 'inline'" } */ |