diff options
| author | rguenth <rguenth@138bc75d-0d04-0410-961f-82ee72b054a4> | 2006-10-11 14:03:37 +0000 |
|---|---|---|
| committer | rguenth <rguenth@138bc75d-0d04-0410-961f-82ee72b054a4> | 2006-10-11 14:03:37 +0000 |
| commit | 4948a3d6530544f5fd239278cdcbd6b871aaaede (patch) | |
| tree | 23259a5430b0300cd752b0edcf21ba04cc502e5e | |
| parent | 472f1e1629ba796289a8b8f13b5c5c64e711772c (diff) | |
| download | ppe42-gcc-4948a3d6530544f5fd239278cdcbd6b871aaaede.tar.gz ppe42-gcc-4948a3d6530544f5fd239278cdcbd6b871aaaede.zip | |
2006-10-11 Richard Guenther <rguenther@suse.de>
PR inline-asm/29119
* gimplify.c (gimplify_asm_expr): Mark the gimplified lvalue
addressable.
* gcc.dg/torture/pr29119.c: New testcase.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@117633 138bc75d-0d04-0410-961f-82ee72b054a4
| -rw-r--r-- | gcc/ChangeLog | 6 | ||||
| -rw-r--r-- | gcc/gimplify.c | 2 | ||||
| -rw-r--r-- | gcc/testsuite/ChangeLog | 5 | ||||
| -rw-r--r-- | gcc/testsuite/gcc.dg/torture/pr29119.c | 7 |
4 files changed, 19 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 8977c39d635..8eca2504987 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2006-10-11 Richard Guenther <rguenther@suse.de> + + PR inline-asm/29119 + * gimplify.c (gimplify_asm_expr): Mark the gimplified lvalue + addressable. + 2006-10-10 Brooks Moses <bmoses@stanford.edu> * configure.ac: Added pdf to "Make-hooks" diff --git a/gcc/gimplify.c b/gcc/gimplify.c index 1a88c60c5d0..ab11a832fdf 100644 --- a/gcc/gimplify.c +++ b/gcc/gimplify.c @@ -4036,9 +4036,9 @@ gimplify_asm_expr (tree *expr_p, tree *pre_p, tree *post_p) /* If the operand is a memory input, it should be an lvalue. */ if (!allows_reg && allows_mem) { - lang_hooks.mark_addressable (TREE_VALUE (link)); tret = gimplify_expr (&TREE_VALUE (link), pre_p, post_p, is_gimple_lvalue, fb_lvalue | fb_mayfail); + lang_hooks.mark_addressable (TREE_VALUE (link)); if (tret == GS_ERROR) { error ("memory input %d is not directly addressable", i); diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 6cbfd6cecb0..c9b7c54fd6d 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2006-10-11 Richard Guenther <rguenther@suse.de> + + PR inline-asm/29119 + * gcc.dg/torture/pr29119.c: New testcase. + 2006-10-10 Jakub Jelinek <jakub@redhat.com> PR middle-end/29272 diff --git a/gcc/testsuite/gcc.dg/torture/pr29119.c b/gcc/testsuite/gcc.dg/torture/pr29119.c new file mode 100644 index 00000000000..63e5d8693a9 --- /dev/null +++ b/gcc/testsuite/gcc.dg/torture/pr29119.c @@ -0,0 +1,7 @@ +/* { dg-do compile } */ + +void ldt_add_entry(void) +{ + __asm__ ("" :: "m"(({unsigned __v; __v;}))); +} + |

