diff options
author | Richard Stallman <rms@gnu.org> | 1992-05-13 03:23:52 +0000 |
---|---|---|
committer | Richard Stallman <rms@gnu.org> | 1992-05-13 03:23:52 +0000 |
commit | 4bb6d2f819e9df55a1c445b5db60c7851e5957ef (patch) | |
tree | 629b2c9bb37daefc88d05850cf684af307215f93 /gcc | |
parent | cd4f4a28dd3e827f226f739d0b4502093677bbc4 (diff) | |
download | gcc-4bb6d2f819e9df55a1c445b5db60c7851e5957ef.zip gcc-4bb6d2f819e9df55a1c445b5db60c7851e5957ef.tar.gz gcc-4bb6d2f819e9df55a1c445b5db60c7851e5957ef.tar.bz2 |
*** empty log message ***
From-SVN: r966
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/c-typeck.c | 14 |
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)) { |