diff options
author | Joseph Myers <jsm@polyomino.org.uk> | 2004-09-11 22:29:42 +0100 |
---|---|---|
committer | Joseph Myers <jsm28@gcc.gnu.org> | 2004-09-11 22:29:42 +0100 |
commit | 9a26d6ee086c424a32fefd09f55ff314afc2a051 (patch) | |
tree | 2e7db2782d1466e19e91914d252ee32d24f2052e /gcc/testsuite/gcc.dg/declspec-4.c | |
parent | e6858057449b72a53389616073b72b3778c2cf63 (diff) | |
download | gcc-9a26d6ee086c424a32fefd09f55ff314afc2a051.zip gcc-9a26d6ee086c424a32fefd09f55ff314afc2a051.tar.gz gcc-9a26d6ee086c424a32fefd09f55ff314afc2a051.tar.bz2 |
c-tree.h (enum c_storage_class): New.
* c-tree.h (enum c_storage_class): New.
(struct c_declspecs): Add storage_class, inline_p and thread_p.
* c-decl.c (shadow_tag_warned): Give errors for "inline" in empty
declarations and "auto" or "register" in file scope empty
declarations. Give more specific warnings for other cases of
storage class specifiers in empty declarations.
(grokdeclarator): Update for new structures. Don't check for
multiple storage classes. Diagnose file-scope "register" if
pedantic.
(build_null_declspecs): Update.
(declspecs_add_scspec): Update. Diagnose multiple storage class
specifiers and invalid uses of "__thread".
testsuite:
* gcc.dg/declspec-4.c, gcc.dg/declspec-5.c, gcc.dg/declspec-6.c,
gcc.dg/tls/diag-2.c: Update expected messages.
* gcc.dg/991209-1.c: Specify compilation options. Update expected
messages.
* gcc.dg/pr14289-2.c, gcc.dg/pr14289-3.c: Remove.
* gcc.dg/declspec-7.c, gcc.dg/declspec-8.c, gcc.dg/declspec-9.c,
gcc.dg/declspec-10.c, gcc.dg/declspec-11.c, gcc.dg/tls/diag-4.c,
gcc.dg/tls/diag-5.c: New tests.
From-SVN: r87374
Diffstat (limited to 'gcc/testsuite/gcc.dg/declspec-4.c')
-rw-r--r-- | gcc/testsuite/gcc.dg/declspec-4.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/gcc/testsuite/gcc.dg/declspec-4.c b/gcc/testsuite/gcc.dg/declspec-4.c index 0610e05..fbc6c36 100644 --- a/gcc/testsuite/gcc.dg/declspec-4.c +++ b/gcc/testsuite/gcc.dg/declspec-4.c @@ -22,7 +22,7 @@ int; /* { dg-warning "warning: useless type name in empty declaration" } */ long; /* { dg-warning "warning: useless keyword or type name in empty declaration" } */ /* { dg-warning "warning: empty declaration" "long" { target *-*-* } 22 } */ T; /* { dg-warning "warning: useless type name in empty declaration" } */ -static const; /* { dg-warning "warning: useless keyword or type name in empty declaration" } */ +static const; /* { dg-warning "warning: useless storage class specifier in empty declaration" } */ /* { dg-warning "warning: empty declaration" "long" { target *-*-* } 25 } */ union { long b; }; /* { dg-warning "warning: unnamed struct/union that defines no instances" } */ |