# Make a local copy of the substitutions.
config.substitutions = list(config.substitutions)

config.substitutions.insert(0, ('%check-in-clang',
  '%%clang -fsyntax-only -x objective-c-header -fobjc-arc -fmodules '
  '-fmodules-validate-system-headers '
  '-Weverything -Werror -Wno-unused-macros -Wno-incomplete-module '
  '-Wno-auto-import '
  '-F %%clang-importer-sdk-path/frameworks '
  '-I %%clang-include-dir '
  '-isysroot %r/Inputs/clang-importer-sdk' % config.test_source_root) )

config.substitutions.insert(0, ('%check-in-clang\+\+',
  '%%clang++ -fsyntax-only -x objective-c++-header -fobjc-arc '
  '-Weverything -Werror -Wno-unused-macros -Wno-incomplete-module '
  '-Wno-auto-import -Wno-variadic-macros -Wno-c++98-compat-pedantic '
  '-Wno-unused-command-line-argument ' # for -fmodules-cache-path
  '-F %%clang-importer-sdk-path/frameworks '
  '-I %%clang-include-dir '
  '-isysroot %r/Inputs/clang-importer-sdk' % config.test_source_root) )
