aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorJ"orn Rennecke <amylaar@cygnus.co.uk>1999-12-10 00:57:03 +0000
committerJoern Rennecke <amylaar@gcc.gnu.org>1999-12-10 00:57:03 +0000
commitc07c7c9d25232987f99b31c6e6ce7e343d19dad7 (patch)
tree2859b2d886f33d7a0f5d47c618ff71bdbda2791a /gcc
parent309ada50deb5fe88d3b703eb36cedfe221192386 (diff)
downloadgcc-c07c7c9d25232987f99b31c6e6ce7e343d19dad7.zip
gcc-c07c7c9d25232987f99b31c6e6ce7e343d19dad7.tar.gz
gcc-c07c7c9d25232987f99b31c6e6ce7e343d19dad7.tar.bz2
regclass.c (globalize_reg): Re-instate test that allows fixed registers to be declared as a variable even...
* regclass.c (globalize_reg): Re-instate test that allows fixed registers to be declared as a variable even after functions are defined. * testsuite/gcc.dg/991209-1.c: New test. From-SVN: r30853
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/regclass.c6
-rw-r--r--gcc/testsuite/ChangeLog4
-rw-r--r--gcc/testsuite/gcc.dg/991209-1.c8
4 files changed, 21 insertions, 3 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 630761d..8c600f7 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+Fri Dec 10 00:53:10 1999 J"orn Rennecke <amylaar@cygnus.co.uk>
+
+ * regclass.c (globalize_reg): Re-instate test that allows
+ fixed registers to be declared as a variable even after functions
+ are defined.
+
Fri Dec 10 00:52:13 MET 1999 Jan Hubicka <hubicka@freesoft.cz>
* i386.md (cpu attribute): Add "athlon".
diff --git a/gcc/regclass.c b/gcc/regclass.c
index ea608f8..55edc77 100644
--- a/gcc/regclass.c
+++ b/gcc/regclass.c
@@ -218,7 +218,7 @@ struct reg_info_data {
static struct reg_info_data *reg_info_head;
-/* No more global register vairiables may be declared; true once
+/* No more global register variables may be declared; true once
regclass has been initialized. */
static int no_global_reg_vars = 0;
@@ -630,7 +630,7 @@ void
globalize_reg (i)
int i;
{
- if (no_global_reg_vars)
+ if (fixed_regs[i] == 0 && no_global_reg_vars)
error ("global register variable follows a function definition");
if (global_regs[i])
@@ -767,7 +767,7 @@ regclass_init ()
before regclass is run. */
reg_pref = NULL;
- /* No more global register vairiables may be declared. */
+ /* No more global register variables may be declared. */
no_global_reg_vars = 1;
}
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index a39733d..658bb24 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,7 @@
+Fri Dec 10 00:53:10 1999 J"orn Rennecke <amylaar@cygnus.co.uk>
+
+ * gcc.dg/991209-1.c: New test.
+
Wed Dec 8 23:44:08 1999 Nathan Sidwell <nathan@acm.org>
* gcc.c-torture/compile/991208-1.c: New test.
diff --git a/gcc/testsuite/gcc.dg/991209-1.c b/gcc/testsuite/gcc.dg/991209-1.c
new file mode 100644
index 0000000..20f481f
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/991209-1.c
@@ -0,0 +1,8 @@
+/* { dg-do compile { target i386-*-* } } */
+
+int foo ()
+{
+ return 1;
+}
+
+register char *stack_ptr asm ("%esp");