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

Attachment: LexPre.patch
Description: LexPre.patch

_______________________________________________
cfe-commits mailing list
cfe-commits@cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits

Reply via email to