diff options
author | Jakub Jelinek <jakub@redhat.com> | 2011-02-04 16:50:51 +0100 |
---|---|---|
committer | Jakub Jelinek <jakub@gcc.gnu.org> | 2011-02-04 16:50:51 +0100 |
commit | dcde5957ce2d3465028da302a878d93bea9fc41f (patch) | |
tree | 414dfa9293092030de0a06170c839b69d92e5b67 /gcc/testsuite/gcc.dg/pr23200.c | |
parent | a64a8e5a1375676bad507dd424e0a1c4850a525b (diff) | |
download | gcc-dcde5957ce2d3465028da302a878d93bea9fc41f.zip gcc-dcde5957ce2d3465028da302a878d93bea9fc41f.tar.gz gcc-dcde5957ce2d3465028da302a878d93bea9fc41f.tar.bz2 |
re PR inline-asm/23200 (rejects "i"(&var + 1))
PR inline-asm/23200
* tree-ssa-ter.c (is_replaceable_p): Add TER argument. Don't
do bb, locus and block comparison and disallow loads if it is
not set.
(stmt_is_replaceable_p): New function.
(process_replaceable, find_replaceable_in_bb): Adjust is_replaceable_p
callers.
* expr.c (expand_expr_real_1) <case SSA_NAME>: If
get_gimple_for_ssa_name try for EXPAND_INITIALIZER harder to use
SSA_NAME_DEF_STMT.
* tree-flow.h (stmt_is_replaceable_p): New prototype.
* gcc.dg/pr23200.c: New test.
From-SVN: r169831
Diffstat (limited to 'gcc/testsuite/gcc.dg/pr23200.c')
-rw-r--r-- | gcc/testsuite/gcc.dg/pr23200.c | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/gcc/testsuite/gcc.dg/pr23200.c b/gcc/testsuite/gcc.dg/pr23200.c new file mode 100644 index 0000000..56bf59c --- /dev/null +++ b/gcc/testsuite/gcc.dg/pr23200.c @@ -0,0 +1,22 @@ +/* PR inline-asm/23200 */ +/* { dg-do compile { target nonpic } } */ +/* { dg-options "-O0" } */ + +static char var; + +void +foo (void) +{ + asm volatile ("" :: "i" (&var + 1)); +} + +typedef int T[]; +typedef T *P; + +int var2; + +void +bar (void) +{ + asm volatile ("" :: "i"(&(*(P)&var2)[1])); +} |