================ @@ -0,0 +1,74 @@ +// RUN: %clang -E -MD -MF - %s | FileCheck -check-prefix ZERO_AND_HAS_INCLUDE %s +// +// ZERO_AND_HAS_INCLUDE-NOT: limits.h +// +#if 0 && __has_include(<limits.h>) +#include <limits.h> +#endif + +#if 4==5 && __has_include(<limits.h>) +#include <limits.h> +#endif + +#if defined(_THIS_IS_NOT_DEFINED) && __has_include(<limits.h>) +#include <limits.h> +#endif + +#if 0 && (__has_include(<limits.h>)) +#include <limits.h> +#endif + +#if 4==5 && (__has_include(<limits.h>)) +#include <limits.h> +#endif + +#if defined(_THIS_IS_NOT_DEFINED) && (__has_include(<limits.h>)) +#include <limits.h> +#endif + +#if 0 && (5==5 && __has_include(<limits.h>)) +#include <limits.h> +#endif + +#if 1 && (4==5 && __has_include(<limits.h>)) +#include <limits.h> +#endif + + + ---------------- AaronBallman wrote:
What happens with code like: ``` #if 0 && absolute garbage goes here #endif ``` Do we still get an error for the incorrect code after the `&&`? https://github.com/llvm/llvm-project/pull/123912 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits