diff options
| author | jakub <jakub@138bc75d-0d04-0410-961f-82ee72b054a4> | 2009-10-19 07:39:43 +0000 |
|---|---|---|
| committer | jakub <jakub@138bc75d-0d04-0410-961f-82ee72b054a4> | 2009-10-19 07:39:43 +0000 |
| commit | 5bd7119308139d314a65d3be8584cdefa0e26b4c (patch) | |
| tree | 06314543c91eececa6bcd3808dfbc85a49ff743d | |
| parent | acce2cad855e27432126f780cc36516bce91181e (diff) | |
| download | ppe42-gcc-5bd7119308139d314a65d3be8584cdefa0e26b4c.tar.gz ppe42-gcc-5bd7119308139d314a65d3be8584cdefa0e26b4c.zip | |
* cfgexpand.c (expand_debug_expr): Fail if bitpos < 0 for non-MEM
op0.
* gcc.dg/debug/vta-3.c: New test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@152972 138bc75d-0d04-0410-961f-82ee72b054a4
| -rw-r--r-- | gcc/ChangeLog | 7 | ||||
| -rw-r--r-- | gcc/cfgexpand.c | 3 | ||||
| -rw-r--r-- | gcc/testsuite/ChangeLog | 4 | ||||
| -rw-r--r-- | gcc/testsuite/gcc.dg/debug/vta-3.c | 17 |
4 files changed, 30 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 706052de662..a8f7148419a 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,4 +1,9 @@ -2009-10-17 Andy Hutchinson <hutchinsonandy@gcc.gnu.org> +2009-10-19 Jakub Jelinek <jakub@redhat.com> + + * cfgexpand.c (expand_debug_expr): Fail if bitpos < 0 for non-MEM + op0. + +2009-10-17 Andy Hutchinson <hutchinsonandy@gcc.gnu.org> PR middle-end/41738 * optabs.c (expand_binop): Make mode of shift count expression mode diff --git a/gcc/cfgexpand.c b/gcc/cfgexpand.c index acd70c13869..8c7c881ea6c 100644 --- a/gcc/cfgexpand.c +++ b/gcc/cfgexpand.c @@ -2593,6 +2593,9 @@ expand_debug_expr (tree exp) if (bitpos == 0 && mode == GET_MODE (op0)) return op0; + if (bitpos < 0) + return NULL; + if ((bitpos % BITS_PER_UNIT) == 0 && bitsize == GET_MODE_BITSIZE (mode1)) { diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 168123f813a..d4d46529f5c 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,7 @@ +2009-10-19 Jakub Jelinek <jakub@redhat.com> + + * gcc.dg/debug/vta-3.c: New test. + 2009-10-17 Eric Botcazou <ebotcazou@adacore.com> * gnat.dg/nested_proc.adb: Rename into... diff --git a/gcc/testsuite/gcc.dg/debug/vta-3.c b/gcc/testsuite/gcc.dg/debug/vta-3.c new file mode 100644 index 00000000000..7d014f1bc1e --- /dev/null +++ b/gcc/testsuite/gcc.dg/debug/vta-3.c @@ -0,0 +1,17 @@ +/* { dg-do compile } */ + +int +foo (void) +{ + union { char e[8]; int i; } a, b; + char *c, *d; + unsigned int i; + c = a.e; + d = &b.e[sizeof (int) - 1]; + for (i = 0; i < sizeof (int); i++) + { + *d = *c++; + --d; + } + return b.i; +} |

