aboutsummaryrefslogtreecommitdiff
path: root/gcc/regclass.c
diff options
context:
space:
mode:
authorAndrew Haley <aph@cygnus.com>1999-11-22 14:20:35 +0000
committerAndrew Haley <aph@gcc.gnu.org>1999-11-22 14:20:35 +0000
commit6c85df69493ee39a1d611150f00982e1f546491b (patch)
tree83e25ee33818de7dc432efb7853fb333b22ae4c1 /gcc/regclass.c
parent9ffc5a70f84fad33a63d085225e7c2b78ae6dc01 (diff)
downloadgcc-6c85df69493ee39a1d611150f00982e1f546491b.zip
gcc-6c85df69493ee39a1d611150f00982e1f546491b.tar.gz
gcc-6c85df69493ee39a1d611150f00982e1f546491b.tar.bz2
varasm.c (function_defined): Remove.
1999-11-22 Andrew Haley <aph@cygnus.com> * varasm.c (function_defined): Remove. (make_function_rtl): Don't set function_defined. (make_decl_rtl): Remove global register warning. * regclass.c (no_global_reg_vars): New variable. (globalize_reg): Warn if function has already been defined. (regclass_init): Set no_global_reg_vars. From-SVN: r30611
Diffstat (limited to 'gcc/regclass.c')
-rw-r--r--gcc/regclass.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/gcc/regclass.c b/gcc/regclass.c
index 544159b..cba13c48 100644
--- a/gcc/regclass.c
+++ b/gcc/regclass.c
@@ -218,6 +218,11 @@ struct reg_info_data {
static struct reg_info_data *reg_info_head;
+/* No more global register vairiables may be declared; true once
+ regclass has been initialized. */
+
+static int no_global_reg_vars = 0;
+
/* Function called only once to initialize the above data on reg usage.
Once this is done, various switches may override. */
@@ -625,6 +630,9 @@ void
globalize_reg (i)
int i;
{
+ if (no_global_reg_vars)
+ error ("global register variable follows a function definition");
+
if (global_regs[i])
{
warning ("register used for two global register variables");
@@ -758,6 +766,9 @@ regclass_init ()
/* This prevents dump_flow_info from losing if called
before regclass is run. */
reg_pref = NULL;
+
+ /* No more global register vairiables may be declared. */
+ no_global_reg_vars = 1;
}
/* Dump register costs. */