objc-act.c (objc_begin_try_stmt): Generate an error if -fobjc-exceptions was not...
authorNicola Pero <nicola.pero@meta-innovation.com>
Fri, 10 Sep 2010 09:54:04 +0000 (09:54 +0000)
committerNicola Pero <nicola@gcc.gnu.org>
Fri, 10 Sep 2010 09:54:04 +0000 (09:54 +0000)
        * objc/objc-act.c (objc_begin_try_stmt): Generate an error if
        -fobjc-exceptions was not used.  (objc_build_throw_stmt): Same
        change.

From-SVN: r164150

gcc/objc/ChangeLog
gcc/objc/objc-act.c

index de6cbeb..aff287b 100644 (file)
@@ -1,3 +1,9 @@
+2010-09-10  Nicola Pero  <nicola.pero@meta-innovation.com>
+
+       * objc/objc-act.c (objc_begin_try_stmt): Generate an error if
+       -fobjc-exceptions was not used.  (objc_build_throw_stmt): Same
+       change.
+
 2010-07-15  Nathan Froyd  <froydnj@codesourcery.com>
 
        * objc-act.c: Carefully replace TREE_CHAIN with DECL_CHAIN.
index 81aba84..38420c7 100644 (file)
@@ -3822,13 +3822,16 @@ objc_begin_try_stmt (location_t try_locus, tree body)
   c->end_try_locus = input_location;
   cur_try_context = c;
 
-  if (flag_objc_sjlj_exceptions)
+  /* -fobjc-exceptions is required to enable Objective-C exceptions.
+     For example, on Darwin, ObjC exceptions require a sufficiently
+     recent version of the runtime, so the user must ask for them
+     explicitly.  On other platforms, at the moment -fobjc-exceptions
+     triggers -fexceptions which again is required for exceptions to
+     work.
+  */
+  if (!flag_objc_exceptions)
     {
-      /* On Darwin, ObjC exceptions require a sufficiently recent
-        version of the runtime, so the user must ask for them explicitly.  */
-      if (!flag_objc_exceptions)
-       warning (0, "use %<-fobjc-exceptions%> to enable Objective-C "
-                "exception syntax");
+      error_at (try_locus, "%<-fobjc-exceptions%> is required to enable Objective-C exception syntax");
     }
 
   if (flag_objc_sjlj_exceptions)
@@ -3979,13 +3982,9 @@ objc_build_throw_stmt (location_t loc, tree throw_expr)
 {
   tree args;
 
-  if (flag_objc_sjlj_exceptions)
+  if (!flag_objc_exceptions)
     {
-      /* On Darwin, ObjC exceptions require a sufficiently recent
-        version of the runtime, so the user must ask for them explicitly.  */
-      if (!flag_objc_exceptions)
-       warning (0, "use %<-fobjc-exceptions%> to enable Objective-C "
-                "exception syntax");
+      error_at (loc, "%<-fobjc-exceptions%> is required to enable Objective-C exception syntax");
     }
 
   if (throw_expr == NULL)