From 91851351be38a6b83bff486fd25cf364910af35a Mon Sep 17 00:00:00 2001 From: Richard Guenther Date: Tue, 30 Jan 2007 10:17:09 +0000 Subject: [PATCH] re PR c/30313 (sizeof of expression including bit-field) 2007-01-30 Richard Guenther PR middle-end/30313 * passes.c (execute_one_pass): Reset in_gimple_form to not confuse non-unit-at-a-time mode. * gcc.dg/torture/pr30313.c: New testcase. From-SVN: r121334 --- gcc/ChangeLog | 6 ++++++ gcc/passes.c | 3 +++ gcc/testsuite/ChangeLog | 5 +++++ gcc/testsuite/gcc.dg/torture/pr30313.c | 15 +++++++++++++++ 4 files changed, 29 insertions(+) create mode 100644 gcc/testsuite/gcc.dg/torture/pr30313.c diff --git a/gcc/ChangeLog b/gcc/ChangeLog index ddd35cd3be7..3c9d149c0a3 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2007-01-30 Richard Guenther + + PR middle-end/30313 + * passes.c (execute_one_pass): Reset in_gimple_form to not + confuse non-unit-at-a-time mode. + 2007-01-29 Roger Sayle Richard Guenther diff --git a/gcc/passes.c b/gcc/passes.c index f1a702efaaa..a9bbba619c7 100644 --- a/gcc/passes.c +++ b/gcc/passes.c @@ -1054,6 +1054,9 @@ execute_one_pass (struct tree_opt_pass *pass) dump_file = NULL; } + /* Reset in_gimple_form to not break non-unit-at-a-time mode. */ + in_gimple_form = false; + return true; } diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 205b74dc142..a8ad0c5d622 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2007-01-30 Richard Guenther + + PR middle-end/30313 + * gcc.dg/torture/pr30313.c: New testcase. + 2007-01-29 Janis Johnson * gcc.dg/dfp/dfp-except.h: New file. diff --git a/gcc/testsuite/gcc.dg/torture/pr30313.c b/gcc/testsuite/gcc.dg/torture/pr30313.c new file mode 100644 index 00000000000..1df85f7edc2 --- /dev/null +++ b/gcc/testsuite/gcc.dg/torture/pr30313.c @@ -0,0 +1,15 @@ +/* { dg-do compile } */ + +static inline void bar(){} + +struct S +{ + signed int i: 32; +}; + +int main() +{ + struct S x = {32}; + sizeof(x.i+0); + return 0; +}