Revert "glcpp: Demote "macro redefined" from an error to a warning"
authorCarl Worth <cworth@cworth.org>
Fri, 28 Jan 2011 22:19:39 +0000 (08:19 +1000)
committerCarl Worth <cworth@cworth.org>
Fri, 28 Jan 2011 22:21:05 +0000 (08:21 +1000)
This reverts commit d3df641f0aba99b0b65ecd4d9b06798bca090a29.

The original commit had sat unpushed on my machine for months. By the
time I found it again, I had forgotten that we had decided not to use
this change after all, (the relevant test was removed long ago).

src/glsl/glcpp/README
src/glsl/glcpp/glcpp-parse.c
src/glsl/glcpp/glcpp-parse.y
src/glsl/glcpp/tests/089-redefine-macro-error.c.expected

index 9cc00e927503b8cf09e561138d298bd348f4f0f4..0b5ef508ce93a93d080a982c3f4e0a5d163393bc 100644 (file)
@@ -29,27 +29,4 @@ The __LINE__ and __FILE__ macros are not yet supported.
 
 A file that ends with a function-like macro name as the last
 non-whitespace token will result in a parse error, (where it should be
-passed through as is).
-
-Known deviations from the specification
----------------------------------------
-As mentoned above, the GLSL specification (as of 1.30.10) is fairly
-vague on some aspects of the preprocessor, and we've been using C99 to
-fill in details. Here is a list of cases where we have deviated from
-the behavior specified in C99 to obtain better compatibility with
-other GLSL implementations:
-
-  * Redefining a macro with a different value
-
-    C89 says that a macro "may be redefined ... provided that the
-    second definition [is equivalent]" (Section 3.8.3 Macro
-    Replacement/constraints)
-
-    C99 is even more explicit, saying tthat a macro "shall not be
-    redefined by another #define preprocessing directive unless the
-    second definition [is equivalent]" (Section 6.10.3 Macro
-    Replacement/Constraints)
-
-    In spite of this, glcpp emits a warning rather than an error for
-    non-equivalent redefinition of macros since this matches the
-    behavior of other, widely-used implementations.
+passed through as is).
\ No newline at end of file
index 2bf96e035e1238f750b2a801262ce5f5a1151750..8567bda1e5d786deebc5c67d221769b4edff7f72 100644 (file)
@@ -4012,8 +4012,8 @@ _define_object_macro (glcpp_parser_t *parser,
                        talloc_free (macro);
                        return;
                }
-               glcpp_warning (loc, parser, "Redefinition of macro %s\n",
-                              identifier);
+               glcpp_error (loc, parser, "Redefinition of macro %s\n",
+                            identifier);
        }
 
        hash_table_insert (parser->defines, macro, identifier);
@@ -4043,8 +4043,8 @@ _define_function_macro (glcpp_parser_t *parser,
                        talloc_free (macro);
                        return;
                }
-               glcpp_warning (loc, parser, "Redefinition of macro %s\n",
-                              identifier);
+               glcpp_error (loc, parser, "Redefinition of macro %s\n",
+                            identifier);
        }
 
        hash_table_insert (parser->defines, macro, identifier);
index 797e614280be71c82fbc5f35c8289d1bf9c5953a..b449eb288b8c247ced292d34c8482eed605e1d0c 100644 (file)
@@ -1687,8 +1687,8 @@ _define_object_macro (glcpp_parser_t *parser,
                        talloc_free (macro);
                        return;
                }
-               glcpp_warning (loc, parser, "Redefinition of macro %s\n",
-                              identifier);
+               glcpp_error (loc, parser, "Redefinition of macro %s\n",
+                            identifier);
        }
 
        hash_table_insert (parser->defines, macro, identifier);
@@ -1718,8 +1718,8 @@ _define_function_macro (glcpp_parser_t *parser,
                        talloc_free (macro);
                        return;
                }
-               glcpp_warning (loc, parser, "Redefinition of macro %s\n",
-                              identifier);
+               glcpp_error (loc, parser, "Redefinition of macro %s\n",
+                            identifier);
        }
 
        hash_table_insert (parser->defines, macro, identifier);
index 4c92e1dd4a6ea04ae8a7878011e88bdc54688d67..6209ead559edad6c25e0ba24ee011c92f21be05c 100644 (file)
@@ -1,14 +1,14 @@
-0:2(9): preprocessor warning: Redefinition of macro x
+0:2(9): preprocessor error: Redefinition of macro x
 
-0:5(9): preprocessor warning: Redefinition of macro abc
+0:5(9): preprocessor error: Redefinition of macro abc
 
-0:8(9): preprocessor warning: Redefinition of macro foo
+0:8(9): preprocessor error: Redefinition of macro foo
 
-0:11(9): preprocessor warning: Redefinition of macro bar
+0:11(9): preprocessor error: Redefinition of macro bar
 
-0:14(9): preprocessor warning: Redefinition of macro biff
+0:14(9): preprocessor error: Redefinition of macro biff
 
-0:17(9): preprocessor warning: Redefinition of macro oper
+0:17(9): preprocessor error: Redefinition of macro oper