[libc++] Make sure we include a header when checking compiler macros
authorLouis Dionne <ldionne@apple.com>
Tue, 27 Oct 2020 19:57:47 +0000 (15:57 -0400)
committerLouis Dionne <ldionne@apple.com>
Tue, 27 Oct 2020 19:58:43 +0000 (15:58 -0400)
Otherwise, it's possible for some __config_site macros not to be
picked up.

libcxx/utils/libcxx/test/dsl.py

index 938d371..6a02ae6 100644 (file)
@@ -191,8 +191,12 @@ def compilerMacros(config, flags=''):
   be added to the compiler invocation when generating the macros.
   """
   with _makeConfigTest(config) as test:
+    with open(test.getSourcePath(), 'w') as sourceFile:
+      # Make sure files like <__config> are included, since they can define
+      # additional macros.
+      sourceFile.write("#include <cstddef>")
     unparsedOutput, err, exitCode, timeoutInfo = _executeScriptInternal(test, [
-      "%{{cxx}} -xc++ {} -dM -E %{{flags}} %{{compile_flags}} {}".format(os.devnull, flags)
+      "%{{cxx}} %s -dM -E %{{flags}} %{{compile_flags}} {}".format(flags)
     ])
     parsedMacros = dict()
     defines = (l.strip() for l in unparsedOutput.split('\n') if l.startswith('#define '))