https://gcc.gnu.org/bugzilla/show_bug.cgi?id=117151
Bug ID: 117151
Summary: _GLIBCXX_USE_C99_COMPLEX_ARC and
_GLIBCXX_USE_C99_COMPLEX are not defined in a
consistent way
Product: gcc
Version: 14.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: libstdc++
Assignee: unassigned at gcc dot gnu.org
Reporter: vincenzo.innocente at cern dot ch
Target Milestone: ---
Not sure if it is intended or not but
if _GLIBCXX_USE_C99_COMPLEX is defined to be "0" (say on the command line)
it will not be redifined in
x86_64-pc-linux-gnu/libstdc++-v3/include/x86_64-pc-linux-gnu/bits/c++config.h
while _GLIBCXX_USE_C99_COMPLEX_ARC is defined "1" unconditionally
(I would have expected that _GLIBCXX_USE_C99_COMPLEX_ARC to have the same value
of _GLIBCXX_USE_C99_COMPLEX )
so "c++ -D_GLIBCXX_USE_C99_COMPLEX=0 -D_GLIBCXX_USE_C99_COMPLEX_ARC=0"
will use C99 functions for arc and the inline definitions for the others...
see
https://godbolt.org/z/oYqWW5Kqz