Teach tgmath.h to only include <complex.h> if it's available.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@149213 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/Headers/tgmath.h b/lib/Headers/tgmath.h
index 1b0b9d2..554af6c 100644
--- a/lib/Headers/tgmath.h
+++ b/lib/Headers/tgmath.h
@@ -30,7 +30,9 @@
 
 /* C++ handles type genericity with overloading in math.h. */
 #ifndef __cplusplus
-#include <complex.h>
+#if __has_include(<complex.h>)
+#  include <complex.h>
+#endif
 
 #define _TG_ATTRSp __attribute__((__overloadable__))
 #define _TG_ATTRS __attribute__((__overloadable__, __always_inline__))
diff --git a/test/Modules/compiler_builtins.m b/test/Modules/compiler_builtins.m
index 5874722..3545604 100644
--- a/test/Modules/compiler_builtins.m
+++ b/test/Modules/compiler_builtins.m
@@ -1,5 +1,5 @@
 // RUN: rm -rf %t
-// RUN: %clang -fsyntax-only -fmodules -fmodule-cache-path %t %s
+// RUN: %clang -fsyntax-only -fmodules -fmodule-cache-path %t %s -Xclang -verify
 
 @import __compiler_builtins.float_constants;
 
@@ -9,4 +9,4 @@
 
 char getCharMax() { return CHAR_MAX; }
 
-//size_t size; // expected-error{{unknown type name 'size_t'}}
+size_t size; // expected-error{{unknown type name 'size_t'}}