Hi Clang developers,
We, here at Sony, have changed the default C++ language standard for PlayStation 4 to C++11 instead of C++98. When we ran the Clang Lit tests, 231 tests failed. We are currently going through and fixing each test to allow for flexible compatibility with current and future C++ standards. Attached is the first fix. This simple fix made the C++ standard dialect explicit on 5 five test file. Here are a brief description for each change: test/Lexer/cxx0x_keyword_as_cxx98.cpp This test checks for diagnostics on C++11 keywords when compiling on older dialects. For this test, I have made the C++ dialects explicit to C++98 and C++03. test/Lexer/has_feature_cxx0x.cpp This test checks for supported language features when compiling at various dialects. For this test, I have made the C++ dialects explicit to C++98 and C++03. test/Lexer/ms-extensions.cpp This test checks for the Warning diagnostic on user-defined literal on older dialects. For this test, I have made the C++ dialects explicit to C++98 and C++03. test/Preprocessor/macro-reserved.cpp This test checks for reserved keywords prior to C++11. For this test, I have made the C++ dialects explicit to C++98 and C++03. test/Preprocessor/macro-reserved-cxx11.cpp This test checks for reserved keywords on C++11. Since C++11 and C++14 share the same keywords, I have added a RUN line for C++14. Please let me know if you feel a separate test file should be created for C++14. All of the above 5 tests are relatively straight forward tests checking for C++ dialect specific behavior. I personally feel adding "-std=" flags to the RUN line of each of the above test will suffice. While there are other tests that can be fixed with such a straight forward fix, many of the other tests will require more nuanced modifications to the test code in order to accommodate for finer differences in the C++ dialects. I hope to expand the scope of the discussion as this work progresses. The final goal of this project, to be submitted over several patches, is to, without breaking the current state, arrive at a situation where the clang lit tests can pass, with no further changes to tests, if the default language dialect is changed from C++98 to C++11. This will make the task of changing the default dialect a trivial step, whenever it happens. Meanwhile, it will help any current clang users who are setting the default to C++11, as we do. Sincerely, Charles Li
LexPre.patch
Description: LexPre.patch
_______________________________________________ cfe-commits mailing list cfe-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits