diff --git a/libcxx/test/std/containers/sequences/array/array.creation/to_array.fail.cpp b/libcxx/test/std/containers/sequences/array/array.creation/to_array.fail.cpp index 39b92a0468dc..49ad6a61037f 100644 --- a/libcxx/test/std/containers/sequences/array/array.creation/to_array.fail.cpp +++ b/libcxx/test/std/containers/sequences/array/array.creation/to_array.fail.cpp @@ -14,8 +14,6 @@ #include "test_macros.h" #include "MoveOnly.h" -// expected-warning@array:* 0-1 {{suggest braces around initialization of subobject}} - int main(int, char**) { { char source[3][6] = {"hi", "world"}; diff --git a/libcxx/utils/libcxx/test/config.py b/libcxx/utils/libcxx/test/config.py index 2f8dc4f80b59..ce77ec8c71c9 100644 --- a/libcxx/utils/libcxx/test/config.py +++ b/libcxx/utils/libcxx/test/config.py @@ -829,7 +829,7 @@ def configure_warnings(self): self.cxx.useWarnings(enable_warnings) self.cxx.warning_flags += [ '-D_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER', - '-Wall', '-Wextra' + '-Wall', '-Wextra', '-Werror' ] if self.cxx.hasWarningFlag('-Wuser-defined-warnings'): self.cxx.warning_flags += ['-Wuser-defined-warnings'] @@ -849,7 +849,11 @@ def configure_warnings(self): self.cxx.addWarningFlagIfSupported('-Wunused-variable') self.cxx.addWarningFlagIfSupported('-Wunused-parameter') self.cxx.addWarningFlagIfSupported('-Wunreachable-code') - self.cxx.addWarningFlagIfSupported('-Wno-unused-local-typedef') + std = self.get_lit_conf('std', None) + if std in ['c++98', 'c++03']: + # The '#define static_assert' provided by libc++ in C++03 mode + # causes an unused local typedef whenever it is used. + self.cxx.addWarningFlagIfSupported('-Wno-unused-local-typedef') def configure_sanitizer(self): san = self.get_lit_conf('use_sanitizer', '').strip() @@ -978,9 +982,8 @@ def configure_substitutions(self): sub.append(('%{libcxx_src_root}', self.libcxx_src_root)) # Configure flags substitutions flags = self.cxx.flags + (self.cxx.modules_flags if self.cxx.use_modules else []) - compile_flags = self.cxx.compile_flags + self.cxx.warning_flags sub.append(('%{flags}', ' '.join(map(pipes.quote, flags)))) - sub.append(('%{compile_flags}', ' '.join(map(pipes.quote, compile_flags)))) + sub.append(('%{compile_flags}', ' '.join(map(pipes.quote, self.cxx.compile_flags)))) sub.append(('%{link_flags}', ' '.join(map(pipes.quote, self.cxx.link_flags)))) sub.append(('%{link_libcxxabi}', pipes.quote(self.cxx.link_libcxxabi_flag))) diff --git a/libcxx/utils/libcxx/test/newformat.py b/libcxx/utils/libcxx/test/newformat.py index 31720ac9f2e8..f704b968b6da 100644 --- a/libcxx/utils/libcxx/test/newformat.py +++ b/libcxx/utils/libcxx/test/newformat.py @@ -173,37 +173,33 @@ def execute(self, test, litConfig): if '-fmodules' in test.config.available_features and self._disableWithModules(test, litConfig): return lit.Test.Result(lit.Test.UNSUPPORTED, 'Test {} is unsupported when modules are enabled') - # TODO(ldionne): Enable -Werror with all supported compilers. - clangOrAppleClang = {'clang', 'apple-clang'}.intersection(test.config.available_features) != set() - werror = '-Werror' if clangOrAppleClang else '' - if re.search('[.]sh[.][^.]+$', filename): steps = [ ] # The steps are already in the script return self._executeShTest(test, litConfig, steps) elif filename.endswith('.compile.pass.cpp'): steps = [ - "%dbg(COMPILED WITH) %{{cxx}} %s {} %{{flags}} %{{compile_flags}} -fsyntax-only".format(werror) + "%dbg(COMPILED WITH) %{cxx} %s %{flags} %{compile_flags} -fsyntax-only" ] return self._executeShTest(test, litConfig, steps) elif filename.endswith('.compile.fail.cpp'): steps = [ - "%dbg(COMPILED WITH) ! %{{cxx}} %s {} %{{flags}} %{{compile_flags}} -fsyntax-only".format(werror) + "%dbg(COMPILED WITH) ! %{cxx} %s %{flags} %{compile_flags} -fsyntax-only" ] return self._executeShTest(test, litConfig, steps) elif filename.endswith('.link.pass.cpp'): steps = [ - "%dbg(COMPILED WITH) %{{cxx}} %s {} %{{flags}} %{{compile_flags}} %{{link_flags}} -o %t.exe".format(werror) + "%dbg(COMPILED WITH) %{cxx} %s %{flags} %{compile_flags} %{link_flags} -o %t.exe" ] return self._executeShTest(test, litConfig, steps) elif filename.endswith('.link.fail.cpp'): steps = [ - "%dbg(COMPILED WITH) %{{cxx}} %s {} %{{flags}} %{{compile_flags}} -c -o %t.o".format(werror), + "%dbg(COMPILED WITH) %{cxx} %s %{flags} %{compile_flags} -c -o %t.o", "%dbg(LINKED WITH) ! %{cxx} %t.o %{flags} %{link_flags} -o %t.exe" ] return self._executeShTest(test, litConfig, steps) elif filename.endswith('.run.fail.cpp'): steps = [ - "%dbg(COMPILED WITH) %{{cxx}} %s {} %{{flags}} %{{compile_flags}} %{{link_flags}} -o %t.exe".format(werror), + "%dbg(COMPILED WITH) %{cxx} %s %{flags} %{compile_flags} %{link_flags} -o %t.exe", "%dbg(EXECUTED AS) %{exec} ! %t.exe" ] return self._executeShTest(test, litConfig, steps, fileDependencies=['%t.exe']) @@ -216,7 +212,7 @@ def execute(self, test, litConfig): # suffixes above too. elif filename.endswith('.pass.cpp') or filename.endswith('.pass.mm'): steps = [ - "%dbg(COMPILED WITH) %{{cxx}} %s {} %{{flags}} %{{compile_flags}} %{{link_flags}} -o %t.exe".format(werror), + "%dbg(COMPILED WITH) %{cxx} %s %{flags} %{compile_flags} %{link_flags} -o %t.exe", "%dbg(EXECUTED AS) %{exec} %t.exe" ] return self._executeShTest(test, litConfig, steps, fileDependencies=['%t.exe']) @@ -230,7 +226,7 @@ def execute(self, test, litConfig): ] else: steps = [ - "%dbg(COMPILED WITH) ! %{{cxx}} {} %s %{{flags}} %{{compile_flags}} -fsyntax-only".format(werror) + "%dbg(COMPILED WITH) ! %{cxx} %s %{flags} %{compile_flags} -fsyntax-only" ] return self._executeShTest(test, litConfig, steps) else: