diff options
author | Richard Guenther <rguenther@suse.de> | 2011-08-26 11:23:37 +0000 |
---|---|---|
committer | Richard Biener <rguenth@gcc.gnu.org> | 2011-08-26 11:23:37 +0000 |
commit | 321358d4e4b17f1c4c0cfb88541d4e8c2720be5d (patch) | |
tree | 5687bf7741ee4c0a8d9fe62d0a8f43058130eb2f /gcc/expr.c | |
parent | c2b640a7ca9dcce8c6f32d0a55ee12b7a81da475 (diff) | |
download | gcc-321358d4e4b17f1c4c0cfb88541d4e8c2720be5d.zip gcc-321358d4e4b17f1c4c0cfb88541d4e8c2720be5d.tar.gz gcc-321358d4e4b17f1c4c0cfb88541d4e8c2720be5d.tar.bz2 |
expr.c (string_constant): Handle &MEM_REF.
2011-08-26 Richard Guenther <rguenther@suse.de>
* expr.c (string_constant): Handle &MEM_REF.
From-SVN: r178100
Diffstat (limited to 'gcc/expr.c')
-rw-r--r-- | gcc/expr.c | 11 |
1 files changed, 11 insertions, 0 deletions
@@ -10168,6 +10168,17 @@ string_constant (tree arg, tree *ptr_offset) fold_convert (sizetype, lower_bound)); } } + else if (TREE_CODE (TREE_OPERAND (arg, 0)) == MEM_REF) + { + array = TREE_OPERAND (TREE_OPERAND (arg, 0), 0); + offset = TREE_OPERAND (TREE_OPERAND (arg, 0), 1); + if (TREE_CODE (array) != ADDR_EXPR) + return 0; + array = TREE_OPERAND (array, 0); + if (TREE_CODE (array) != STRING_CST + && TREE_CODE (array) != VAR_DECL) + return 0; + } else return 0; } |