diff options
author | Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org> | 2016-01-20 16:25:23 +0000 |
---|---|---|
committer | Prathamesh Kulkarni <prathamesh3492@gcc.gnu.org> | 2016-01-20 16:25:23 +0000 |
commit | d25c7690621ad26fe03b0c38040ded1e8667372c (patch) | |
tree | 8f34e243e6c141a45fea0369c0d2d05d4e2954cf /gcc/testsuite/gcc.dg/pr24293.c | |
parent | b235cdd5f50456368772692ce5ec139e2e09b360 (diff) | |
download | gcc-d25c7690621ad26fe03b0c38040ded1e8667372c.zip gcc-d25c7690621ad26fe03b0c38040ded1e8667372c.tar.gz gcc-d25c7690621ad26fe03b0c38040ded1e8667372c.tar.bz2 |
re PR c/24293 (Undefined behaviour not diagnosed with -fsyntax-only)
2016-01-15 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
PR c/24293
* c-tree.h (incomplete_record_decls): Declare.
* c-parser.c (incomplete_record_decls): Define.
(c_parser_translation_unit): Iterate through incomplete_record_decls and
report error if any decl has zero size.
* c-decl.c (finish_decl): Append static decl with incomplete struct/union
or enum type to incomplete_record_decls.
testsuite/
* gcc.dg/pr24293.c: New test.
* gcc.dg/Wcxx-compat-8.c: Adjust to accept error due to
incomplete struct type.
* gcc.dg/declspec-1.c: Likewise.
* gcc.dg/pr63549.c: Likewise.
From-SVN: r232622
Diffstat (limited to 'gcc/testsuite/gcc.dg/pr24293.c')
-rw-r--r-- | gcc/testsuite/gcc.dg/pr24293.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/gcc/testsuite/gcc.dg/pr24293.c b/gcc/testsuite/gcc.dg/pr24293.c new file mode 100644 index 0000000..5bf7ad17 --- /dev/null +++ b/gcc/testsuite/gcc.dg/pr24293.c @@ -0,0 +1,12 @@ +/* { dg-do compile } */ +/* { dg-options "-fsyntax-only" } */ + +static struct foo x; /* { dg-error "storage size of 'x' isn't known" } */ +static union bar y; /* { dg-error "storage size of 'y' isn't known" } */ + +typedef struct P p; +static p p_obj; /* { dg-error "storage size of 'p_obj' isn't known" } */ + +static enum e e_var; /* { dg-error "storage size of 'e_var' isn't known" } */ + +extern struct undefined_object object; |