Pull r53701 into Gaz:

ObjC V2 was allocating 32-bit objects for some of
the magic variables it constructs for "foreach",
but the call that stores into one of them has a
64-bit result.  Oops.  Fixes
objc.dg/objc-foreach-11.m
objc.dg/objc-foreach-8.m
objc.dg/objc-foreach-9.m
obj-c++.dg/objc-foreach-10.mm
obj-c++.dg/objc-foreach-11.mm
obj-c++.dg/objc-foreach-4.mm
obj-c++.dg/objc-foreach-9.mm
in 64-bit mode.

llvm-svn: 53709
diff --git a/llvm-gcc-4.2/gcc/objc/objc-act.c b/llvm-gcc-4.2/gcc/objc/objc-act.c
index 715e24c..7154b7b 100644
--- a/llvm-gcc-4.2/gcc/objc/objc-act.c
+++ b/llvm-gcc-4.2/gcc/objc/objc-act.c
@@ -18873,9 +18873,9 @@
 
    __objcFastEnumerationState enumState = { 0 };
    id items[16];
-   unsigned int limit; 
+   unsigned long limit; 
    unsigned long startMutations;
-   unsigned int counter;
+   unsigned long counter;
    [collection countByEnumeratingWithState:&enumState objects:items count:16];
 
    it returns expression for:
@@ -18919,14 +18919,14 @@
 			   build_index_type (build_int_cst (NULL_TREE, 16 - 1)));
   *items_decl = objc_create_named_tmp_var (type, "cstar");
 
-  /* unsigned int limit */
-  *limit_decl = objc_create_named_tmp_var (unsigned_type_node, "cstar");
+  /* unsigned long limit */
+  *limit_decl = objc_create_named_tmp_var (long_unsigned_type_node, "cstar");
 
   /* unsigned long startMutations */
   *startMutations_decl = objc_create_named_tmp_var (long_unsigned_type_node, "cstar");
 
-  /* unsigned int counter */
-  *counter_decl = objc_create_named_tmp_var (unsigned_type_node, "cstar");
+  /* unsigned long counter */
+  *counter_decl = objc_create_named_tmp_var (long_unsigned_type_node, "cstar");
 
   /* [collection countByEnumeratingWithState:&enumState objects:items count:16] */
   sel_name = get_identifier ("countByEnumeratingWithState:objects:count:");
@@ -19089,7 +19089,7 @@
   /* do { */
   outer_do_body = c_begin_compound_stmt (true);
 
-  /* unsigned int counter = 0; */
+  /* unsigned long counter = 0; */
   exp = build2 (MODIFY_EXPR, void_type_node, counter_decl, 
 		fold_convert (TREE_TYPE (counter_decl), integer_zero_node)); 
   bind = build3 (BIND_EXPR, void_type_node, counter_decl, exp, NULL);