This is in response to an inquiry from Richard Smith here:
Background: Sony's version of Clang defaults to C++11 (specifically,
-std=gnu++11). In order to get the Clang regression tests to pass
after we made this change (years ago), we modified a pile of tests to
add an explicit -std options. Richard was wondering if any of those
cases were hiding bugs, or if the change was for innocuous reasons
such as differences in expected diagnostics.
I started with all the Clang tests we had modified; excluded tests
where the modified lines had the -verify option, on the (untested)
assumption that the change was to make the expected set of diagnostics
come out; then looked for tests that had the -std option.
That produced a list with 37 ObjectiveC++ tests and 35 C++ tests. I
didn't look at the ObjectiveC++ tests, and in 4 of the C++ tests we
had added entire new RUN lines (rather than modifying existing ones)
so the -std was legit.
SO: 31 C++ tests where we had added a -std option, but not to keep the
-verify option happy. Natural question: Has the reason for the change
gone away? I reverted those 31 tests, and only 7 of them failed.
+Failing Tests (7):
+ Clang :: Analysis/temp-obj-dtors-cfg-output.cpp
+ Clang :: CXX/dcl.decl/dcl.init/dcl.init.list/p7-0x-fixits.cpp
+ Clang :: CodeCompletion/ordinary-name.cpp
+ Clang :: CodeGenCXX/debug-info-use-after-free.cpp
+ Clang :: CodeGenCXX/volatile-1.cpp
+ Clang :: SemaTemplate/partial-spec-instantiate.cpp
+ Clang :: SemaTemplate/value-dependent-null-pointer-constant.cpp
Not too shabby. A casual glance through suggests that at least some
of these are genuinely depending on or exercising behavior of older
standards, but I'd prefer to leave that judgment to more expert eyes.