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: unassig...@gcc.gnu.org
        ReportedBy: h...@gcc.gnu.org
                CC: amacl...@redhat.com


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.

Reply via email to