Make the -Wkeyword-compat diag message more accurate

Changed from:

  keyword '__is_empty' will be treated as an identifier for the remainder of the translation unit

To:

  keyword '__is_empty' will be made available as an identifier for the remainder of the translation unit

This is a more accurate description of clang's keyword compatibility feature,
given that some of the keywords are turned into context-sensitive keywords
(e.g. REVERTIBLE_TYPE_TRAIT) rather than being fully disabled.

llvm-svn: 196776
This commit is contained in:
Alp Toker 2013-12-09 12:41:02 +00:00
parent 26a5a7475e
commit cfea74944a
4 changed files with 6 additions and 5 deletions

View File

@ -59,7 +59,8 @@ def ext_integer_complex : Extension<
"complex integer types are a GNU extension">, InGroup<GNUComplexInteger>;
def ext_thread_before : Extension<"'__thread' before '%0'">;
def ext_keyword_as_ident : ExtWarn<
"keyword '%0' will be treated as an identifier %select{here|for the remainder of the translation unit}1">,
"keyword '%0' will be made available as an identifier "
"%select{here|for the remainder of the translation unit}1">,
InGroup<KeywordCompat>;
def error_empty_enum : Error<"use of empty enum">;

View File

@ -566,7 +566,7 @@ def fmsc_version : Joined<["-"], "fmsc-version=">, Group<f_Group>, Flags<[CC1Opt
HelpText<"Version of the Microsoft C/C++ compiler to report in _MSC_VER (0 = don't define it (default))">;
def fdelayed_template_parsing : Flag<["-"], "fdelayed-template-parsing">, Group<f_Group>,
HelpText<"Parse templated function definitions at the end of the "
"translation unit ">, Flags<[CC1Option]>;
"translation unit">, Flags<[CC1Option]>;
def fmodules_cache_path : Joined<["-"], "fmodules-cache-path=">, Group<i_Group>,
Flags<[DriverOption, CC1Option]>, MetaVarName<"<directory>">,
HelpText<"Specify the module cache path">;

View File

@ -1,12 +1,12 @@
// Header for PCH test cxx-traits.cpp
template<typename _Tp>
struct __is_pod { // expected-warning {{keyword '__is_pod' will be treated as an identifier for the remainder of the translation unit}}
struct __is_pod { // expected-warning {{keyword '__is_pod' will be made available as an identifier for the remainder of the translation unit}}
enum { __value };
};
template<typename _Tp>
struct __is_empty { // expected-warning {{keyword '__is_empty' will be treated as an identifier for the remainder of the translation unit}}
struct __is_empty { // expected-warning {{keyword '__is_empty' will be made available as an identifier for the remainder of the translation unit}}
enum { __value };
};

View File

@ -3,7 +3,7 @@
typedef union {
union w *__uptr;
#if defined(MS) && defined(NOT_SYSTEM)
// expected-warning@-2 {{keyword '__uptr' will be treated as an identifier here}}
// expected-warning@-2 {{keyword '__uptr' will be made available as an identifier here}}
#endif
int *__iptr;
} WS __attribute__((__transparent_union__));