http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54266
Bug #: 54266
Summary: atomic / sync preprocessor macros inconsistent with
(does not reflect) functionality of atomic / sync
support.
Classification: Unclassified
Product: gcc
Version: 4.8.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: c
AssignedTo: [email protected]
ReportedBy: [email protected]
CC: [email protected]
The preprocessor macros defined in c-family/c-cppbuiltin.c:cpp_atomic_builtins
don't correctly reflect whether atomic builtins work (can be linked and
executed). They just check for presence of certain MD patterns, while library
calls are just as valid.
This PR is similar to PR54006, but just intended to track the issue of
usability of the preprocessor macros. For example, the cas_int target; the
check_effective_target_cas_int function doesn't catch targets implementing
atomics by calling library functions because __GCC_HAVE_SYNC_COMPARE_AND_SWAP_2
and __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4 are unusable for this purpose. See also
the test-case in PR54261.