===================================================================
@@ -13246,13 +13246,13 @@ objc_finish_foreach_loop (location_t location, tre
if (!objc_type_valid_for_messaging (TREE_TYPE (object_expression), true))
{
- error ("iterating variable in fast enumeration is not an object");
+ error_at (location, "iterating variable in fast enumeration is not an object");
return;
}
if (!objc_type_valid_for_messaging (TREE_TYPE (collection_expression), true))
{
- error ("collection in fast enumeration is not an object");
+ error_at (location, "collection in fast enumeration is not an object");
return;
}
===================================================================
@@ -1,3 +1,9 @@
+2010-12-08 Nicola Pero <nicola.pero@meta-innovation.com>
+
+ * objc-act.c (objc_finish_foreach_loop): Use error_at() instead of
+ error() when printing an error about the iterating variable or
+ collection not being an object.
+
2010-12-06 Nicola Pero <nicola.pero@meta-innovation.com>
* objc-act.c (objc_finish_foreach_loop): Mark the
===================================================================
@@ -1,3 +1,8 @@
+2010-12-08 Nicola Pero <nicola.pero@meta-innovation.com>
+
+ * objc.dg/foreach-6.m: Updated location of error messages.
+ * objc.dg/foreach-7.m: Same change.
+
2010-12-08 Wei Guozhi <carrot@google.com>
PR target/46631
===================================================================
@@ -46,16 +46,16 @@ int main (void)
;
for (12 in array) /* { dg-error "invalid iterating variable in fast enumeration" } */
- ; /* { dg-error "iterating variable in fast enumeration is not an object" } */
+ ; /* { dg-error "iterating variable in fast enumeration is not an object" "" { target *-*-* } 48 } */
- for (object in 12)
- ; /* { dg-error "collection in fast enumeration is not an object" } */
+ for (object in 12) /* { dg-error "collection in fast enumeration is not an object" } */
+ ;
- for (object in invalid)
- ; /* { dg-error "collection in fast enumeration is not an object" } */
+ for (object in invalid) /* { dg-error "collection in fast enumeration is not an object" } */
+ ;
- for (invalid in [object enumerator])
- ; /* { dg-error "iterating variable in fast enumeration is not an object" } */
+ for (invalid in [object enumerator]) /* { dg-error "iterating variable in fast enumeration is not an object" } */
+ ;
return 0;
}
===================================================================
@@ -36,10 +36,10 @@ int main (void)
id object = nil;
for (typedef int my_typedef in array) /* { dg-error "declaration of non-variable" } */
- ; /* { dg-error "iterating variable in fast enumeration is not an object" } */
+ ; /* { dg-error "iterating variable in fast enumeration is not an object" "" { target *-*-* } 38 } */
for (function () in nil) /* { dg-error "invalid iterating variable in fast enumeration" } */
- ; /* { dg-error "iterating variable in fast enumeration is not an object" } */
+ ; /* { dg-error "iterating variable in fast enumeration is not an object" "" { target *-*-* } 41 } */
for (object_function () in nil) /* { dg-error "invalid iterating variable in fast enumeration" } */
;