diff options
author | Richard Stallman <rms@gnu.org> | 1993-02-27 19:16:44 +0000 |
---|---|---|
committer | Richard Stallman <rms@gnu.org> | 1993-02-27 19:16:44 +0000 |
commit | ce2fb2459b747b9895c9eaa9a1b1014c6b332ff7 (patch) | |
tree | 2d524e61c919eb92ccc5637e0caa24857ff3a458 /gcc | |
parent | e0c72e782e0dc60432eb0d9e0c3a790e34dd2a9b (diff) | |
download | gcc-ce2fb2459b747b9895c9eaa9a1b1014c6b332ff7.zip gcc-ce2fb2459b747b9895c9eaa9a1b1014c6b332ff7.tar.gz gcc-ce2fb2459b747b9895c9eaa9a1b1014c6b332ff7.tar.bz2 |
(make_decl_rtl): Print an error for explicit register variable
whose type cannot be stored in that register.
From-SVN: r3561
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/varasm.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/gcc/varasm.c b/gcc/varasm.c index c40a2fa..961d340 100644 --- a/gcc/varasm.c +++ b/gcc/varasm.c @@ -333,6 +333,9 @@ make_decl_rtl (decl, asmspec, top_level) error ("function declared `register'"); else if (DECL_REGISTER (decl) && TYPE_MODE (TREE_TYPE (decl)) == BLKmode) error_with_decl (decl, "data type of `%s' isn't suitable for a register"); + else if (DECL_REGISTER (decl) + && ! HARD_REGNO_MODE_OK (reg_number, TYPE_MODE (TREE_TYPE (decl)))) + error_with_decl (decl, "register number for `%s' isn't suitable for the data type"); /* Now handle properly declared static register variables. */ else if (DECL_REGISTER (decl)) { |