(make_decl_rtl): Print an error for explicit register variable
authorRichard Stallman <rms@gnu.org>
Sat, 27 Feb 1993 19:16:44 +0000 (19:16 +0000)
committerRichard Stallman <rms@gnu.org>
Sat, 27 Feb 1993 19:16:44 +0000 (19:16 +0000)
whose type cannot be stored in that register.

From-SVN: r3561

gcc/varasm.c

index c40a2faf1df694efca579bdaa3d69bf676e63618..961d340e077c70be56d6aff68bc29735db45b431 100644 (file)
@@ -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))
        {