libcody: Fix build for older GCC versions
authorJonathan Wakely <jwakely@redhat.com>
Wed, 16 Dec 2020 13:37:17 +0000 (13:37 +0000)
committerJonathan Wakely <jwakely@redhat.com>
Wed, 16 Dec 2020 14:33:26 +0000 (14:33 +0000)
commit4e42f6ebf483452015c3d102c6ac45741fceb87b
tree254d33a20c5edd31118eca2f64b70f549ec2f7a6
parent96d9670e88333d8896a5d2f2bb0403c1e2ad19ab
libcody: Fix build for older GCC versions

Before CWG DR 1955 the controlling expression for an #elif must be
syntactically correct, meaning this won't compile with C++11 compilers
such as gcc 4.8:

The solution is to define __has_include(X) as 0 for compilers that don't
support it.

The second problem is that when <source_location> is found, it is used
without the std:: qualification.

libcody/ChangeLog:

* internal.hh: Define fallback macros for __has_builtin and
__has_include. Use __has_builtin for __builtin_FILE and
__builtin_LINE. Define alias for std::source_location.
libcody/internal.hh