diff --git a/gcc/ChangeLog b/gcc/ChangeLog index ddd35cd3be77..3c9d149c0a3a 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 f1a702efaaa8..a9bbba619c78 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 205b74dc1428..a8ad0c5d622d 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 000000000000..1df85f7edc2b --- /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; +}