While I'd still like to detect the obvious wrong cases like outlined
in comment #27 of the PR the following makes the seemingly obvious
workarounds work (use -fno-builtin, -ffreestanding or -fno-hosted).

Ok for trunk and branches?

Thanks,
Richard.

2014-05-06  Richard Biener  <rguent...@suse.de>

        c-family/
        * c-opts.c (c_common_post_options): For -freestanding,
        -fno-hosted and -fno-builtin disable pattern recognition
        if not enabled explicitely.

Index: gcc/c-family/c-opts.c
===================================================================
*** gcc/c-family/c-opts.c       (revision 210097)
--- gcc/c-family/c-opts.c       (working copy)
*************** c_common_post_options (const char **pfil
*** 851,856 ****
--- 851,862 ----
    if (flag_objc_exceptions && !flag_objc_sjlj_exceptions)
      flag_exceptions = 1;
  
+   /* If -ffreestanding, -fno-hosted or -fno-builtin then disable
+      pattern recognition.  */
+   if (!global_options_set.x_flag_tree_loop_distribute_patterns
+       && flag_no_builtin)
+     flag_tree_loop_distribute_patterns = 0;
+ 
    /* -Woverlength-strings is off by default, but is enabled by -Wpedantic.
       It is never enabled in C++, as the minimum limit is not normative
       in that standard.  */

Reply via email to