Author: ericwf Date: Thu Jun 15 20:57:41 2017 New Revision: 305539 URL: http://llvm.org/viewvc/llvm-project?rev=305539&view=rev Log: Allow the libc++ C header wrappers to be included when compiling C.
C99 at least. C89 still fails due to the use of block comments. NOTE: Having libc++ on the include path when compiling C is not recommended or ever really supported. However it happens often enough that this change is warrented. Added: libcxx/trunk/test/libcxx/include_as_c.sh.cpp Modified: libcxx/trunk/include/__config Modified: libcxx/trunk/include/__config URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/include/__config?rev=305539&r1=305538&r2=305539&view=diff ============================================================================== --- libcxx/trunk/include/__config (original) +++ libcxx/trunk/include/__config Thu Jun 15 20:57:41 2017 @@ -1135,8 +1135,6 @@ _LIBCPP_FUNC_VIS extern "C" void __sanit # define _LIBCPP_HAS_NO_COROUTINES #endif -#endif // __cplusplus - // Decide whether to use availability macros. #if !defined(_LIBCPP_BUILDING_LIBRARY) && \ !defined(_LIBCPP_DISABLE_AVAILABILITY) && \ @@ -1240,4 +1238,7 @@ _LIBCPP_FUNC_VIS extern "C" void __sanit # endif #endif // defined(_LIBCPP_HAS_NO_PRAGMA_PUSH_POP_MACRO) + +#endif // __cplusplus + #endif // _LIBCPP_CONFIG Added: libcxx/trunk/test/libcxx/include_as_c.sh.cpp URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/libcxx/include_as_c.sh.cpp?rev=305539&view=auto ============================================================================== --- libcxx/trunk/test/libcxx/include_as_c.sh.cpp (added) +++ libcxx/trunk/test/libcxx/include_as_c.sh.cpp Thu Jun 15 20:57:41 2017 @@ -0,0 +1,37 @@ +// -*- C++ -*- +//===----------------------------------------------------------------------===// +// +// The LLVM Compiler Infrastructure +// +// This file is dual licensed under the MIT and the University of Illinois Open +// Source Licenses. See LICENSE.TXT for details. +// +//===----------------------------------------------------------------------===// + +// Test that the C wrapper headers can be included when compiling them as C. + +// NOTE: It's not common or recommended to have libc++ in the header search +// path when compiling C files, but it does happen often enough. + +// RUN: %cxx -c -xc %s -fsyntax-only %flags %compile_flags -std=c99 + +#include <complex.h> +#include <ctype.h> +#include <errno.h> +#include <float.h> +#include <inttypes.h> +#include <limits.h> +#include <locale.h> +#include <math.h> +#include <setjmp.h> +#include <stdbool.h> +#include <stddef.h> +#include <stdint.h> +#include <stdio.h> +#include <stdlib.h> +#include <string.h> +#include <tgmath.h> +#include <wchar.h> +#include <wctype.h> + +int main() {} _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits