Author: ericwf Date: Wed Jan 17 14:48:09 2018 New Revision: 322776 URL: http://llvm.org/viewvc/llvm-project?rev=322776&view=rev Log: Fix nodiscard failure tests on compilers w/o -verify.
Previously .fail.cpp tests for nodiscard were run with -Wunused-result being a warning, not an error, when the compiler didn't support -verify. When -verify isn't enabled this change judiciously adds -Werror=unused-result when to only the failure tests containing the // expected-error string for nodiscard. As a drive-by change, this patch also adds a missing // UNSUPPORTED: c++2a to a test which was only supposed to run in C++ <= 11. Modified: libcxx/trunk/test/std/language.support/support.dynamic/new.delete/new.delete.array/sized_delete_array11.pass.cpp libcxx/trunk/utils/libcxx/test/format.py Modified: libcxx/trunk/test/std/language.support/support.dynamic/new.delete/new.delete.array/sized_delete_array11.pass.cpp URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/language.support/support.dynamic/new.delete/new.delete.array/sized_delete_array11.pass.cpp?rev=322776&r1=322775&r2=322776&view=diff ============================================================================== --- libcxx/trunk/test/std/language.support/support.dynamic/new.delete/new.delete.array/sized_delete_array11.pass.cpp (original) +++ libcxx/trunk/test/std/language.support/support.dynamic/new.delete/new.delete.array/sized_delete_array11.pass.cpp Wed Jan 17 14:48:09 2018 @@ -12,7 +12,7 @@ // Note that sized delete operator definitions below are simply ignored // when sized deallocation is not supported, e.g., prior to C++14. -// UNSUPPORTED: c++14, c++17 +// UNSUPPORTED: c++14, c++17, c++2a // UNSUPPORTED: sanitizer-new-delete #include <new> Modified: libcxx/trunk/utils/libcxx/test/format.py URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/utils/libcxx/test/format.py?rev=322776&r1=322775&r2=322776&view=diff ============================================================================== --- libcxx/trunk/utils/libcxx/test/format.py (original) +++ libcxx/trunk/utils/libcxx/test/format.py Wed Jan 17 14:48:09 2018 @@ -242,7 +242,18 @@ class LibcxxTestFormat(object): test_cxx.useWarnings() if '-Wuser-defined-warnings' in test_cxx.warning_flags: test_cxx.warning_flags += ['-Wno-error=user-defined-warnings'] - + else: + # We still need to enable certain warnings on .fail.cpp test when + # -verify isn't enabled. Such as -Werror=unused-result. However, + # we don't want it enabled too liberally, which might incorrectly + # allow unrelated failure tests to 'pass'. + # + # Therefore, we check if the test was expected to fail because of + # nodiscard before enabling it + test_str = "ignoring return value of function declared with " \ + + "'nodiscard' attribute" + if test_str in contents: + test_cxx.flags += ['-Werror=unused-result'] cmd, out, err, rc = test_cxx.compile(source_path, out=os.devnull) expected_rc = 0 if use_verify else 1 if rc == expected_rc: _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits