aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Stallman <rms@gnu.org>1992-05-13 03:23:52 +0000
committerRichard Stallman <rms@gnu.org>1992-05-13 03:23:52 +0000
commit4bb6d2f819e9df55a1c445b5db60c7851e5957ef (patch)
tree629b2c9bb37daefc88d05850cf684af307215f93
parentcd4f4a28dd3e827f226f739d0b4502093677bbc4 (diff)
downloadgcc-4bb6d2f819e9df55a1c445b5db60c7851e5957ef.zip
gcc-4bb6d2f819e9df55a1c445b5db60c7851e5957ef.tar.gz
gcc-4bb6d2f819e9df55a1c445b5db60c7851e5957ef.tar.bz2
*** empty log message ***
From-SVN: r966
-rw-r--r--gcc/c-typeck.c14
1 files changed, 13 insertions, 1 deletions
diff --git a/gcc/c-typeck.c b/gcc/c-typeck.c
index 0a0813a..2de86ae 100644
--- a/gcc/c-typeck.c
+++ b/gcc/c-typeck.c
@@ -3332,7 +3332,19 @@ mark_addressable (exp)
case CONST_DECL:
case PARM_DECL:
case RESULT_DECL:
- if (TREE_REGDECL (x) && !TREE_ADDRESSABLE (x))
+ if (TREE_REGDECL (x) && !TREE_ADDRESSABLE (x)
+ && TREE_NONLOCAL (x))
+ {
+ if (TREE_PUBLIC (x))
+ {
+ error ("global register variable `%s' used in nested function",
+ IDENTIFIER_POINTER (DECL_NAME (x)));
+ return 0;
+ }
+ pedwarn ("register variable `%s' used in nested function",
+ IDENTIFIER_POINTER (DECL_NAME (x)));
+ }
+ else if (TREE_REGDECL (x) && !TREE_ADDRESSABLE (x))
{
if (TREE_PUBLIC (x))
{