]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
builtins.def: Enable OpenMP/OpenACC builtins also with -fno-nonansi-builtins
authorTobias Burnus <tburnus@baylibre.com>
Fri, 6 Jun 2025 13:57:50 +0000 (15:57 +0200)
committerTobias Burnus <tburnus@baylibre.com>
Fri, 6 Jun 2025 14:18:11 +0000 (16:18 +0200)
The flags -std=c.. and -std=c++.. imply -fno-nonansi-builtins, which disabled
the OpenMP/OpenACC intrinsics - but -fopenmp/-fopenacc builtin use should be
rather othogonal to the user's choice between -std=c... and -std=gnuc...

gcc/ChangeLog:

* builtins.def (DEF_GOACC_BUILTIN_COMPILER, DEF_GOMP_BUILTIN_COMPILER):
Set NONANSI_P = false to enable those also with -fno-nonansi-builtins.

gcc/builtins.def

index fdcad54a5d7513ee3c42688e2480a3f0d9447c96..59a43a10058a2aa9d422ebb13a50a43e5af8b439 100644 (file)
@@ -217,6 +217,8 @@ along with GCC; see the file COPYING3.  If not see
   DEF_BUILTIN (ENUM, "__builtin_" NAME, BUILT_IN_NORMAL, TYPE, TYPE,    \
               false, true, true, ATTRS, false, \
               flag_openacc)
+/* Set NONANSI_P = false to enable the builtins also with -fno-nonansi-builtins,
+   esp. as -std=c++../c.. imply that flag and -fopenacc should be othogonal.  */
 #undef DEF_GOACC_BUILTIN_COMPILER
 #define DEF_GOACC_BUILTIN_COMPILER(ENUM, NAME, TYPE, ATTRS) \
   DEF_BUILTIN (ENUM, "__builtin_" NAME, BUILT_IN_NORMAL, TYPE, TYPE,    \
@@ -232,10 +234,12 @@ along with GCC; see the file COPYING3.  If not see
               (flag_openacc \
                || flag_openmp \
                || flag_tree_parallelize_loops > 1))
+/* Set NONANSI_P = false to enable the builtins also with -fno-nonansi-builtins,
+   esp. as -std=c++../c.. imply that flag and -fopenmp should be othogonal.  */
 #undef DEF_GOMP_BUILTIN_COMPILER
 #define DEF_GOMP_BUILTIN_COMPILER(ENUM, NAME, TYPE, ATTRS) \
   DEF_BUILTIN (ENUM, "__builtin_" NAME, BUILT_IN_NORMAL, TYPE, TYPE,    \
-               flag_openmp, true, true, ATTRS, false, flag_openmp)
+               flag_openmp, true, false, ATTRS, false, flag_openmp)
 
 /* Builtin used by the implementation of GNU TM.  These
    functions are mapped to the actual implementation of the STM library. */