[libcxx] r283762 - [libcxx] Fix gcc build.
Asiri Rathnayake via cfe-commits
cfe-commits at lists.llvm.org
Mon Oct 10 08:56:01 PDT 2016
Author: asiri
Date: Mon Oct 10 10:56:01 2016
New Revision: 283762
URL: http://llvm.org/viewvc/llvm-project?rev=283762&view=rev
Log:
[libcxx] Fix gcc build.
Attempt to fix a horrible gcc include order problem.
Modified:
libcxx/trunk/include/limits.h
Modified: libcxx/trunk/include/limits.h
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/include/limits.h?rev=283762&r1=283761&r2=283762&view=diff
==============================================================================
--- libcxx/trunk/include/limits.h (original)
+++ libcxx/trunk/include/limits.h Mon Oct 10 10:56:01 2016
@@ -44,6 +44,22 @@ Macros:
#pragma GCC system_header
#endif
+#ifndef __GNUC__
#include_next <limits.h>
+#else
+// GCC header limits.h recursively includes itself through another header called
+// syslimits.h for some reason. This setup breaks down if we directly
+// #include_next GCC's limits.h (reasons not entirely clear to me). Therefore,
+// we manually re-create the necessary include sequence below:
+
+// Get the system limits.h defines (force recurse into the next level)
+#define _GCC_LIMITS_H_
+#define _GCC_NEXT_LIMITS_H
+#include_next <limits.h>
+
+// Get the ISO C defines
+#undef _GCC_LIMITS_H_
+#include_next <limits.h>
+#endif // __GNUC__
#endif // _LIBCPP_LIMITS_H
More information about the cfe-commits
mailing list