regclass.c (globalize_reg): Re-instate test that allows fixed registers to be declare...
authorJ"orn Rennecke <amylaar@cygnus.co.uk>
Fri, 10 Dec 1999 00:57:03 +0000 (00:57 +0000)
committerJoern Rennecke <amylaar@gcc.gnu.org>
Fri, 10 Dec 1999 00:57:03 +0000 (00:57 +0000)
* 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

gcc/ChangeLog
gcc/regclass.c
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.dg/991209-1.c [new file with mode: 0644]

index 630761dcdf4cf65b6dd64a308b6ce87ed876f7c8..8c600f797a767fcdd659f8e3d7a674ce83dc06e8 100644 (file)
@@ -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".
index ea608f8220297374469cca38faf3419cabc8e908..55edc778fd0d21b1af59da326be2c6661b0b1eff 100644 (file)
@@ -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;
 }
 \f
index a39733d5f0ab4cf9b2080e960085a652146c08ad..658bb24faeee04aaa589e849d2ea64a86b0318e9 100644 (file)
@@ -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 (file)
index 0000000..20f481f
--- /dev/null
@@ -0,0 +1,8 @@
+/* { dg-do compile { target i386-*-* } } */
+
+int foo ()
+{
+  return 1;
+}
+
+register char *stack_ptr asm ("%esp");