aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorRichard Guenther <rguenther@suse.de>2011-01-12 15:01:09 +0000
committerRichard Biener <rguenth@gcc.gnu.org>2011-01-12 15:01:09 +0000
commit4b18b3c25be70a76f65629d11d80a64d396a1a7a (patch)
treead5c376095525a5ec7e80f68d14a2edf3f97b33a /gcc
parent8e38461c76dc3c71f494d41b3b78cf42160f41fd (diff)
downloadgcc-4b18b3c25be70a76f65629d11d80a64d396a1a7a.zip
gcc-4b18b3c25be70a76f65629d11d80a64d396a1a7a.tar.gz
gcc-4b18b3c25be70a76f65629d11d80a64d396a1a7a.tar.bz2
re PR lto/47259 (LTO and global register variable)
2011-01-12 Richard Guenther <rguenther@suse.de> PR lto/47259 * lto-streamer-out.c (output_gimple_stmt): Do not wrap register variables in a MEM_REF. From-SVN: r168713
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/lto-streamer-out.c3
2 files changed, 8 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 7181f96..4724df2 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2011-01-12 Richard Guenther <rguenther@suse.de>
+
+ PR lto/47259
+ * lto-streamer-out.c (output_gimple_stmt): Do not wrap
+ register variables in a MEM_REF.
+
2011-01-12 Joseph Myers <joseph@codesourcery.com>
* config.gcc (arm*-*-linux*, bfin*-uclinux*, bfin*-linux-uclibc*,
diff --git a/gcc/lto-streamer-out.c b/gcc/lto-streamer-out.c
index 7c00293..e471d70 100644
--- a/gcc/lto-streamer-out.c
+++ b/gcc/lto-streamer-out.c
@@ -1769,7 +1769,8 @@ output_gimple_stmt (struct output_block *ob, gimple stmt)
while (handled_component_p (*basep))
basep = &TREE_OPERAND (*basep, 0);
if (TREE_CODE (*basep) == VAR_DECL
- && !auto_var_in_fn_p (*basep, current_function_decl))
+ && !auto_var_in_fn_p (*basep, current_function_decl)
+ && !DECL_REGISTER (*basep))
{
bool volatilep = TREE_THIS_VOLATILE (*basep);
*basep = build2 (MEM_REF, TREE_TYPE (*basep),