* opts.c (finish_options): Call sorry on -fgnu-tm and
-fnon-call-exceptions combination.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@182636
138bc75d-0d04-0410-961f-
82ee72b054a4
+2011-12-22 Aldy Hernandez <aldyh@redhat.com>
+
+ PR middle-end/51212
+ * opts.c (finish_options): Call sorry on -fgnu-tm and
+ -fnon-call-exceptions combination.
+
2011-12-22 Jonathan Wakely <jwakely.gcc@gmail.com>
* doc/invoke.texi (C++ Dialect Options): Add missing options and
opts->x_flag_toplevel_reorder = 0;
}
+ if (opts->x_flag_tm && opts->x_flag_non_call_exceptions)
+ sorry ("transactional memory is not supported with non-call exceptions");
+
/* -Wmissing-noreturn is alias for -Wsuggest-attribute=noreturn. */
if (opts->x_warn_missing_noreturn)
opts->x_warn_suggest_attribute_noreturn = true;
--- /dev/null
+// { dg-do compile }
+// { dg-options "-fgnu-tm -fnon-call-exceptions" }
+
+struct S
+{
+ S ()
+ {
+ }
+};
+
+__attribute__ ((transaction_callable))
+void foo (int *p)
+{
+ S s;
+ if (*p)
+ ;
+}
+
+// { dg-message "sorry, unimplemented: transactional memory is not supported with non-call exceptions" "-fnon-call-exceptions and -fgnu-tm together" { target *-*-* } 0 }