diff --git a/gcc/config/alpha/alpha.md b/gcc/config/alpha/alpha.md
index df12a611e3dcdb2f74f50c0c03bf662ddca13e6a..a1d3b2bac17bbab88878920db22e1e8ce4364fd2 100644
--- a/gcc/config/alpha/alpha.md
+++ b/gcc/config/alpha/alpha.md
@@ -1034,7 +1034,7 @@
     }
 
   operands[0] = gen_lowpart (DImode, operands[0]);
-  operands[1] = gen_lowpart (DImode, force_reg (HImode, operands[1]));
+  operands[1] = gen_lowpart (DImode, force_reg (QImode, operands[1]));
   operands[2] = gen_reg_rtx (DImode);
 }")
 
diff --git a/gcc/toplev.c b/gcc/toplev.c
index 790a51b8fd856d96860e45d85aad70132e33c740..821dab62158bc08c82720314f395c3c6910a9bd2 100644
--- a/gcc/toplev.c
+++ b/gcc/toplev.c
@@ -4143,6 +4143,7 @@ main (argc, argv, envp)
 		      if (*p && (*p < '0' || *p > '9'))
 			continue;
 		      q = p;
+		      len = p - str;
 		      while (*q && (*q >= '0' && *q <= '9'))
 			q++;
 		      if (*p)