invoke.texi (Wnormalized=): Update.
authorManuel López-Ibáñez <manu@gcc.gnu.org>
Tue, 9 Sep 2014 21:41:43 +0000 (21:41 +0000)
committerManuel López-Ibáñez <manu@gcc.gnu.org>
Tue, 9 Sep 2014 21:41:43 +0000 (21:41 +0000)
gcc/ChangeLog:

2014-09-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>

* doc/invoke.texi (Wnormalized=): Update.

libcpp/ChangeLog:

2014-09-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>

* include/cpplib.h (struct cpp_options): Declare warn_normalize as
int instead of enum.

gcc/c-family/ChangeLog:

2014-09-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>

* c.opt (Wnormalized): New.
(Wnormalized=): Use Enum and Reject Negative.
* c-opts.c (c_common_handle_option): Do not handle Wnormalized here.

gcc/testsuite/ChangeLog:

2014-09-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>

* gcc.dg/cpp/warn-normalized-3.c: Delete useless dg-prune-output.

From-SVN: r215093

gcc/ChangeLog
gcc/c-family/ChangeLog
gcc/c-family/c-opts.c
gcc/c-family/c.opt
gcc/doc/invoke.texi
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.dg/cpp/warn-normalized-3.c
libcpp/ChangeLog
libcpp/include/cpplib.h

index a967334bc202cb647dc00a621eacf6b18f566d83..de1d1a9006e6a5f330a547a26e7de19669c9c344 100644 (file)
@@ -1,3 +1,7 @@
+2014-09-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
+
+       * doc/invoke.texi (Wnormalized=): Update.
+
 2014-09-09  Segher Boessenkool  <segher@kernel.crashing.org>
 
        PR target/63195
index 7768555e473cc525ac6d10c485c25ccf13d07356..81e253d03bd8403f67c53ba27e35a34d7f6d4a2f 100644 (file)
@@ -1,3 +1,9 @@
+2014-09-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
+
+       * c.opt (Wnormalized): New.
+       (Wnormalized=): Use Enum and Reject Negative.
+       * c-opts.c (c_common_handle_option): Do not handle Wnormalized here.
+
 2014-09-08  Joseph Myers  <joseph@codesourcery.com>
 
        * c-cppbuiltin.c (c_cpp_builtins): Define macros for mantissa
index b701022ce1019d78ac4551eb40ce037a409b2919..74866911e5be4455fffbf4d5f790d0f5372fcbb2 100644 (file)
@@ -384,29 +384,6 @@ c_common_handle_option (size_t scode, const char *arg, int value,
       cpp_opts->warn_num_sign_change = value;
       break;
 
-    case OPT_Wnormalized_:
-      /* FIXME: Move all this to c.opt.  */
-      if (kind == DK_ERROR)
-       {
-         gcc_assert (!arg);
-         inform (input_location, "-Werror=normalized=: set -Wnormalized=nfc");
-         cpp_opts->warn_normalize = normalized_C;
-       }
-      else
-       {
-         if (!value || (arg && strcasecmp (arg, "none") == 0))
-           cpp_opts->warn_normalize = normalized_none;
-         else if (!arg || strcasecmp (arg, "nfkc") == 0)
-           cpp_opts->warn_normalize = normalized_KC;
-         else if (strcasecmp (arg, "id") == 0)
-           cpp_opts->warn_normalize = normalized_identifier_C;
-         else if (strcasecmp (arg, "nfc") == 0)
-           cpp_opts->warn_normalize = normalized_C;
-         else
-           error ("argument %qs to %<-Wnormalized%> not recognized", arg);
-         break;
-       }
-
     case OPT_Wunknown_pragmas:
       /* Set to greater than 1, so that even unknown pragmas in
         system headers will be warned about.  */
index d1c5c056b76b0a19c37d51d0b1f387b9697ff30c..11703b92aaf6df2338899b24241a07dd95391bf2 100644 (file)
@@ -633,9 +633,32 @@ Wnonnull
 C ObjC C++ ObjC++ LangEnabledBy(C ObjC C++ ObjC++,Wall)
 ;
 
+Wnormalized
+C ObjC C++ ObjC++ Alias(Wnormalized=,nfc,none)
+;
+
 Wnormalized=
-C ObjC C++ ObjC++ Joined Warning
--Wnormalized=<id|nfc|nfkc>     Warn about non-normalised Unicode strings
+C ObjC C++ ObjC++ RejectNegative Joined Warning CPP(warn_normalize) Init(normalized_C) Var(cpp_warn_normalize) Enum(cpp_normalize_level)
+-Wnormalized=<none|id|nfc|nfkc>        Warn about non-normalised Unicode strings
+
+; Required for these enum values.
+SourceInclude
+cpplib.h
+
+Enum
+Name(cpp_normalize_level) Type(int) UnknownError(argument %qs to %<-Wnormalized%> not recognized)
+
+EnumValue
+Enum(cpp_normalize_level) String(none) Value(normalized_none)
+
+EnumValue
+Enum(cpp_normalize_level) String(nfkc) Value(normalized_KC)
+
+EnumValue
+Enum(cpp_normalize_level) String(id) Value(normalized_identifier_C)
+
+EnumValue
+Enum(cpp_normalize_level) String(nfc) Value(normalized_C)
 
 Wold-style-cast
 C++ ObjC++ Var(warn_old_style_cast) Warning
index ca9522a6016e945fd256922af025301e942c824c..a680be918fcd365bb26d86516108930ec933b0f2 100644 (file)
@@ -262,7 +262,8 @@ Objective-C and Objective-C++ Dialects}.
 -Wlogical-op -Wlogical-not-parentheses -Wlong-long @gol
 -Wmain -Wmaybe-uninitialized -Wmemset-transposed-args -Wmissing-braces @gol
 -Wmissing-field-initializers -Wmissing-include-dirs @gol
--Wno-multichar  -Wnonnull  -Wodr  -Wno-overflow  -Wopenmp-simd @gol
+-Wno-multichar  -Wnonnull  -Wnormalized=@r{[}none@r{|}id@r{|}nfc@r{|}nfkc@r{]} @gol
+ -Wodr  -Wno-overflow  -Wopenmp-simd @gol
 -Woverlength-strings  -Wpacked  -Wpacked-bitfield-compat  -Wpadded @gol
 -Wparentheses  -Wpedantic-ms-format -Wno-pedantic-ms-format @gol
 -Wpointer-arith  -Wno-pointer-to-int-cast @gol
@@ -4921,8 +4922,10 @@ Do not warn if a multicharacter constant (@samp{'FOOF'}) is used.
 Usually they indicate a typo in the user's code, as they have
 implementation-defined values, and should not be used in portable code.
 
-@item -Wnormalized=<none|id|nfc|nfkc>
+@item -Wnormalized@r{[}=@r{<}none@r{|}id@r{|}nfc@r{|}nfkc@r{>]}
 @opindex Wnormalized=
+@opindex Wnormalized
+@opindex Wno-normalized
 @cindex NFC
 @cindex NFKC
 @cindex character set, input normalization
@@ -4938,7 +4941,8 @@ have not been normalized; this option controls that warning.
 There are four levels of warning supported by GCC@.  The default is
 @option{-Wnormalized=nfc}, which warns about any identifier that is
 not in the ISO 10646 ``C'' normalized form, @dfn{NFC}.  NFC is the
-recommended form for most uses.
+recommended form for most uses.  It is equivalent to
+@option{-Wnormalized}.
 
 Unfortunately, there are some characters allowed in identifiers by
 ISO C and ISO C++ that, when turned into NFC, are not allowed in 
@@ -4949,9 +4953,10 @@ It is hoped that future versions of the standards involved will correct
 this, which is why this option is not the default.
 
 You can switch the warning off for all characters by writing
-@option{-Wnormalized=none}.  You should only do this if you
-are using some other normalization scheme (like ``D''), because
-otherwise you can easily create bugs that are literally impossible to see.
+@option{-Wnormalized=none} or @option{-Wno-normalized}.  You should
+only do this if you are using some other normalization scheme (like
+``D''), because otherwise you can easily create bugs that are
+literally impossible to see.
 
 Some characters in ISO 10646 have distinct meanings but look identical
 in some fonts or display methodologies, especially once formatting has
index 448a7ef2281cf6747b239a333a762939770cebae..0a2562ab42c47b57db555d9964453b45c40b4209 100644 (file)
@@ -1,3 +1,7 @@
+2014-09-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
+
+       * gcc.dg/cpp/warn-normalized-3.c: Delete useless dg-prune-output.
+
 2014-09-09  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
 
        * gcc.target/powerpc/swaps-p8-15.c: Remove scan-assembler-not for
index 43ea76a0e78eb3af8ce71855bb514e8fda6a7f93..d6cd56f0151aa11f5b05bca5bbec1f66b977e6a7 100644 (file)
@@ -1,5 +1,4 @@
 // { dg-do preprocess }
 // { dg-options "-std=gnu99 -fdiagnostics-show-option -fextended-identifiers -Werror=normalized=" }
 /* { dg-message "some warnings being treated as errors" "" {target "*-*-*"} 0 } */
-        // { dg-prune-output ".*-Werror=normalized=: set -Wnormalized=nfc.*" }
 \u0F43  // { dg-error "`.U00000f43' is not in NFC .-Werror=normalized=." }
index 890b7fc6897cb85942ad1c35d65d5e7386fb59e8..d98611925d22154e9a4a1595e9f8e588129f6834 100644 (file)
@@ -1,3 +1,8 @@
+2014-09-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
+
+       * include/cpplib.h (struct cpp_options): Declare warn_normalize as
+       int instead of enum.
+
 2014-09-04  Manuel López-Ibáñez  <manu@gcc.gnu.org>
 
        * macro.c (replace_args): Use cpp_pedwarning, cpp_warning and
index 28cb495d42563c152da3ff8eb662326670eb526b..62d271be41cac5049697450b9a790546a0b7a443 100644 (file)
@@ -457,8 +457,8 @@ struct cpp_options
   const char *input_charset;
 
   /* The minimum permitted level of normalization before a warning
-     is generated.  */
-  enum cpp_normalize_level warn_normalize;
+     is generated.  See enum cpp_normalize_level.  */
+  int warn_normalize;
 
   /* True to warn about precompiled header files we couldn't use.  */
   bool warn_invalid_pch;