Author: ericwf Date: Fri Dec 2 18:27:13 2016 New Revision: 288557 URL: http://llvm.org/viewvc/llvm-project?rev=288557&view=rev Log: Enable warnings by default for C++ >= 11 and fix -Wshadow occurances
Modified: libcxx/trunk/test/libcxx/test/config.py libcxx/trunk/test/std/experimental/filesystem/class.directory_iterator/directory_iterator.members/ctor.pass.cpp libcxx/trunk/test/std/experimental/filesystem/class.path/path.member/path.modifiers/clear.pass.cpp libcxx/trunk/test/std/experimental/filesystem/class.path/path.member/path.native.obs/c_str.pass.cpp libcxx/trunk/test/std/experimental/filesystem/class.path/path.member/path.native.obs/native.pass.cpp libcxx/trunk/test/std/experimental/filesystem/class.path/path.member/path.native.obs/operator_string.pass.cpp libcxx/trunk/test/std/experimental/filesystem/class.rec.dir.itr/rec.dir.itr.members/ctor.pass.cpp libcxx/trunk/test/std/experimental/memory/memory.resource/memory.resource.public/allocate.pass.cpp libcxx/trunk/test/std/iterators/predef.iterators/move.iterators/move.iter.ops/move.iter.op.index/difference_type.pass.cpp libcxx/trunk/test/std/iterators/predef.iterators/move.iterators/move.iter.ops/move.iter.op.star/op_star.pass.cpp Modified: libcxx/trunk/test/libcxx/test/config.py URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/libcxx/test/config.py?rev=288557&r1=288556&r2=288557&view=diff ============================================================================== --- libcxx/trunk/test/libcxx/test/config.py (original) +++ libcxx/trunk/test/libcxx/test/config.py Fri Dec 2 18:27:13 2016 @@ -640,8 +640,7 @@ class Configuration(object): '-D_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER', '-Wall', '-Wextra', '-Werror' ] - # FIXME turn this back on after fixing potential breakage. - #self.cxx.addWarningFlagIfSupported('-Wshadow') + self.cxx.addWarningFlagIfSupported('-Wshadow') self.cxx.addWarningFlagIfSupported('-Wno-unused-command-line-argument') self.cxx.addWarningFlagIfSupported('-Wno-attributes') self.cxx.addWarningFlagIfSupported('-Wno-pessimizing-move') @@ -649,10 +648,10 @@ class Configuration(object): self.cxx.addWarningFlagIfSupported('-Wno-user-defined-literals') # TODO(EricWF) Remove the unused warnings once the test suite # compiles clean with them. + self.cxx.addWarningFlagIfSupported('-Wno-sign-compare') self.cxx.addWarningFlagIfSupported('-Wno-unused-local-typedef') self.cxx.addWarningFlagIfSupported('-Wno-unused-variable') self.cxx.addWarningFlagIfSupported('-Wno-unused-parameter') - self.cxx.addWarningFlagIfSupported('-Wno-sign-compare') 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 Modified: libcxx/trunk/test/std/experimental/filesystem/class.directory_iterator/directory_iterator.members/ctor.pass.cpp URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/experimental/filesystem/class.directory_iterator/directory_iterator.members/ctor.pass.cpp?rev=288557&r1=288556&r2=288557&view=diff ============================================================================== --- libcxx/trunk/test/std/experimental/filesystem/class.directory_iterator/directory_iterator.members/ctor.pass.cpp (original) +++ libcxx/trunk/test/std/experimental/filesystem/class.directory_iterator/directory_iterator.members/ctor.pass.cpp Fri Dec 2 18:27:13 2016 @@ -87,9 +87,10 @@ TEST_CASE(access_denied_test_case) env.create_file(testFile, 42); // Test that we can iterator over the directory before changing the perms - directory_iterator it(testDir); - TEST_REQUIRE(it != directory_iterator{}); - + { + directory_iterator it(testDir); + TEST_REQUIRE(it != directory_iterator{}); + } // Change the permissions so we can no longer iterate permissions(testDir, perms::none); Modified: libcxx/trunk/test/std/experimental/filesystem/class.path/path.member/path.modifiers/clear.pass.cpp URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/experimental/filesystem/class.path/path.member/path.modifiers/clear.pass.cpp?rev=288557&r1=288556&r2=288557&view=diff ============================================================================== --- libcxx/trunk/test/std/experimental/filesystem/class.path/path.member/path.modifiers/clear.pass.cpp (original) +++ libcxx/trunk/test/std/experimental/filesystem/class.path/path.member/path.modifiers/clear.pass.cpp Fri Dec 2 18:27:13 2016 @@ -28,7 +28,6 @@ namespace fs = std::experimental::filesy int main() { using namespace fs; - const path p("/foo/bar/baz"); { path p; ASSERT_NOEXCEPT(p.clear()); @@ -37,6 +36,7 @@ int main() { assert(p.empty()); } { + const path p("/foo/bar/baz"); path p2(p); assert(p == p2); p2.clear(); Modified: libcxx/trunk/test/std/experimental/filesystem/class.path/path.member/path.native.obs/c_str.pass.cpp URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/experimental/filesystem/class.path/path.member/path.native.obs/c_str.pass.cpp?rev=288557&r1=288556&r2=288557&view=diff ============================================================================== --- libcxx/trunk/test/std/experimental/filesystem/class.path/path.member/path.native.obs/c_str.pass.cpp (original) +++ libcxx/trunk/test/std/experimental/filesystem/class.path/path.member/path.native.obs/c_str.pass.cpp Fri Dec 2 18:27:13 2016 @@ -30,8 +30,8 @@ int main() using namespace fs; const char* const value = "hello world"; const std::string str_value = value; - path p(value); { // Check signature + path p(value); ASSERT_SAME_TYPE(path::value_type const*, decltype(p.c_str())); ASSERT_NOEXCEPT(p.c_str()); } Modified: libcxx/trunk/test/std/experimental/filesystem/class.path/path.member/path.native.obs/native.pass.cpp URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/experimental/filesystem/class.path/path.member/path.native.obs/native.pass.cpp?rev=288557&r1=288556&r2=288557&view=diff ============================================================================== --- libcxx/trunk/test/std/experimental/filesystem/class.path/path.member/path.native.obs/native.pass.cpp (original) +++ libcxx/trunk/test/std/experimental/filesystem/class.path/path.member/path.native.obs/native.pass.cpp Fri Dec 2 18:27:13 2016 @@ -28,8 +28,8 @@ int main() { using namespace fs; const char* const value = "hello world"; - path p(value); { // Check signature + path p(value); ASSERT_SAME_TYPE(path::string_type const&, decltype(p.native())); ASSERT_NOEXCEPT(p.native()); } Modified: libcxx/trunk/test/std/experimental/filesystem/class.path/path.member/path.native.obs/operator_string.pass.cpp URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/experimental/filesystem/class.path/path.member/path.native.obs/operator_string.pass.cpp?rev=288557&r1=288556&r2=288557&view=diff ============================================================================== --- libcxx/trunk/test/std/experimental/filesystem/class.path/path.member/path.native.obs/operator_string.pass.cpp (original) +++ libcxx/trunk/test/std/experimental/filesystem/class.path/path.member/path.native.obs/operator_string.pass.cpp Fri Dec 2 18:27:13 2016 @@ -30,8 +30,8 @@ int main() using namespace fs; using string_type = path::string_type; const char* const value = "hello world"; - path p(value); { // Check signature + path p(value); static_assert(std::is_convertible<path, string_type>::value, ""); static_assert(std::is_constructible<string_type, path>::value, ""); ASSERT_SAME_TYPE(string_type, decltype(p.operator string_type())); Modified: libcxx/trunk/test/std/experimental/filesystem/class.rec.dir.itr/rec.dir.itr.members/ctor.pass.cpp URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/experimental/filesystem/class.rec.dir.itr/rec.dir.itr.members/ctor.pass.cpp?rev=288557&r1=288556&r2=288557&view=diff ============================================================================== --- libcxx/trunk/test/std/experimental/filesystem/class.rec.dir.itr/rec.dir.itr.members/ctor.pass.cpp (original) +++ libcxx/trunk/test/std/experimental/filesystem/class.rec.dir.itr/rec.dir.itr.members/ctor.pass.cpp Fri Dec 2 18:27:13 2016 @@ -91,8 +91,10 @@ TEST_CASE(access_denied_test_case) env.create_file(testFile, 42); // Test that we can iterator over the directory before changing the perms - RDI it(testDir); - TEST_REQUIRE(it != RDI{}); + { + RDI it(testDir); + TEST_REQUIRE(it != RDI{}); + } // Change the permissions so we can no longer iterate permissions(testDir, perms::none); Modified: libcxx/trunk/test/std/experimental/memory/memory.resource/memory.resource.public/allocate.pass.cpp URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/experimental/memory/memory.resource/memory.resource.public/allocate.pass.cpp?rev=288557&r1=288556&r2=288557&view=diff ============================================================================== --- libcxx/trunk/test/std/experimental/memory/memory.resource/memory.resource.public/allocate.pass.cpp (original) +++ libcxx/trunk/test/std/experimental/memory/memory.resource/memory.resource.public/allocate.pass.cpp Fri Dec 2 18:27:13 2016 @@ -73,8 +73,8 @@ int main() #ifndef TEST_HAS_NO_EXCEPTIONS { TestResource R2; - auto& P = R2.getController(); - P.throw_on_alloc = true; + auto& P2 = R2.getController(); + P2.throw_on_alloc = true; memory_resource& M2 = R2; try { M2.allocate(42); Modified: libcxx/trunk/test/std/iterators/predef.iterators/move.iterators/move.iter.ops/move.iter.op.index/difference_type.pass.cpp URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/iterators/predef.iterators/move.iterators/move.iter.ops/move.iter.op.index/difference_type.pass.cpp?rev=288557&r1=288556&r2=288557&view=diff ============================================================================== --- libcxx/trunk/test/std/iterators/predef.iterators/move.iterators/move.iter.ops/move.iter.op.index/difference_type.pass.cpp (original) +++ libcxx/trunk/test/std/iterators/predef.iterators/move.iterators/move.iter.ops/move.iter.op.index/difference_type.pass.cpp Fri Dec 2 18:27:13 2016 @@ -18,9 +18,7 @@ #include <iterator> #include <cassert> -#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES #include <memory> -#endif #include "test_macros.h" #include "test_iterators.h" @@ -36,29 +34,28 @@ test(It i, typename std::iterator_traits assert(rr == x); } -#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES - struct do_nothing { void operator()(void*) const {} }; -#endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES - int main() { - char s[] = "1234567890"; - test(random_access_iterator<char*>(s+5), 4, '0'); - test(s+5, 4, '0'); -#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES - int i[5]; - typedef std::unique_ptr<int, do_nothing> Ptr; - Ptr p[5]; - for (unsigned j = 0; j < 5; ++j) - p[j].reset(i+j); - test(p, 3, Ptr(i+3)); -#endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES - + { + char s[] = "1234567890"; + test(random_access_iterator<char*>(s+5), 4, '0'); + test(s+5, 4, '0'); + } +#if TEST_STD_VER >= 11 + { + int i[5]; + typedef std::unique_ptr<int, do_nothing> Ptr; + Ptr p[5]; + for (unsigned j = 0; j < 5; ++j) + p[j].reset(i+j); + test(p, 3, Ptr(i+3)); + } +#endif #if TEST_STD_VER > 14 { constexpr const char *p = "123456789"; Modified: libcxx/trunk/test/std/iterators/predef.iterators/move.iterators/move.iter.ops/move.iter.op.star/op_star.pass.cpp URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/iterators/predef.iterators/move.iterators/move.iter.ops/move.iter.op.star/op_star.pass.cpp?rev=288557&r1=288556&r2=288557&view=diff ============================================================================== --- libcxx/trunk/test/std/iterators/predef.iterators/move.iterators/move.iter.ops/move.iter.op.star/op_star.pass.cpp (original) +++ libcxx/trunk/test/std/iterators/predef.iterators/move.iterators/move.iter.ops/move.iter.op.star/op_star.pass.cpp Fri Dec 2 18:27:13 2016 @@ -17,9 +17,7 @@ #include <iterator> #include <cassert> -#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES #include <memory> -#endif #include "test_macros.h" @@ -44,25 +42,25 @@ test(It i, typename std::iterator_traits assert(x2 == x); } -#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES - struct do_nothing { void operator()(void*) const {} }; -#endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES int main() { - A a; - test(&a, A()); -#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES - int i; - std::unique_ptr<int, do_nothing> p(&i); - test(&p, std::unique_ptr<int, do_nothing>(&i)); -#endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES - + { + A a; + test(&a, A()); + } +#if TEST_STD_VER >= 11 + { + int i; + std::unique_ptr<int, do_nothing> p(&i); + test(&p, std::unique_ptr<int, do_nothing>(&i)); + } +#endif #if TEST_STD_VER > 14 { constexpr const char *p = "123456789"; _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits