diff options
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/lto-streamer-out.c | 3 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/lto/pr56297_0.c | 13 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/lto/pr56297_1.c | 5 |
5 files changed, 32 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index e354b93..4308b5b 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2013-02-12 Richard Biener <rguenther@suse.de> + + PR lto/56297 + * lto-streamer-out.c (write_symbol): Do not output symbols + for hard register variables. + 2013-02-12 Georg-Johann Lay <avr@gjlay.de> PR target/54222 diff --git a/gcc/lto-streamer-out.c b/gcc/lto-streamer-out.c index f8207c8..6cbe045 100644 --- a/gcc/lto-streamer-out.c +++ b/gcc/lto-streamer-out.c @@ -1166,7 +1166,8 @@ write_symbol (struct streamer_tree_cache_d *cache, if (!TREE_PUBLIC (t) || is_builtin_fn (t) || DECL_ABSTRACT (t) - || TREE_CODE (t) == RESULT_DECL) + || TREE_CODE (t) == RESULT_DECL + || (TREE_CODE (t) == VAR_DECL && DECL_HARD_REGISTER (t))) return; gcc_assert (TREE_CODE (t) == VAR_DECL diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index f99e66e..13114a1 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,9 @@ +2013-02-12 Richard Biener <rguenther@suse.de> + + PR lto/56297 + * gcc.dg/lto/pr56297_0.c: New testcase. + * gcc.dg/lto/pr56297_0.c: Likewise. + 2013-02-12 Janus Weil <janus@gcc.gnu.org> PR fortran/46952 diff --git a/gcc/testsuite/gcc.dg/lto/pr56297_0.c b/gcc/testsuite/gcc.dg/lto/pr56297_0.c new file mode 100644 index 0000000..5ed19da --- /dev/null +++ b/gcc/testsuite/gcc.dg/lto/pr56297_0.c @@ -0,0 +1,13 @@ +/* { dg-lto-do link } */ +/* { dg-lto-options { { -flto -fno-common } } } */ + +#if __x86_64__ || __i386__ +register int i asm("esp"); +#else +extern int i; +#endif + +int main(void) +{ + return i; +} diff --git a/gcc/testsuite/gcc.dg/lto/pr56297_1.c b/gcc/testsuite/gcc.dg/lto/pr56297_1.c new file mode 100644 index 0000000..17e9c8c --- /dev/null +++ b/gcc/testsuite/gcc.dg/lto/pr56297_1.c @@ -0,0 +1,5 @@ +#if __x86_64__ || __i386__ +register int i asm("esp"); +#else +int i; +#endif |