2012-01-20  Mike Stump  <mikestump@comcast.net>

	* c-common.c (c_common_type_for_mode): Match signed/unsigned types
	exactly.

Index: c-common.c
===================================================================
--- c-common.c	(revision 183395)
+++ c-common.c	(working copy)
@@ -3089,7 +3089,8 @@ c_common_type_for_mode (enum machine_mod
     }
 
   for (t = registered_builtin_types; t; t = TREE_CHAIN (t))
-    if (TYPE_MODE (TREE_VALUE (t)) == mode)
+    if (TYPE_MODE (TREE_VALUE (t)) == mode
+	&& !!unsignedp == !!TYPE_UNSIGNED (TREE_VALUE (t)))
       return TREE_VALUE (t);
 
   return 0;
