]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
re PR middle-end/27428 (ICE with goto in erroneous code)
authorRoger Sayle <roger@eyesopen.com>
Sun, 2 Jul 2006 16:05:28 +0000 (16:05 +0000)
committerRoger Sayle <sayle@gcc.gnu.org>
Sun, 2 Jul 2006 16:05:28 +0000 (16:05 +0000)
PR middle-end/27428
* c-lex.c (c_lex_with_flags) <CPP_N_INVALID>: Increment errorcount
to indicate the cpplib has issued an error message for us.

* gcc.dg/pr27428-1.c: New test case.

From-SVN: r115133

gcc/ChangeLog
gcc/c-lex.c
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.dg/pr27428-1.c [new file with mode: 0644]

index 28e9af85031d7646a2a2a766e9867250f344e72d..457ca82169325023a64c370e4f4ca12936ecf1bc 100644 (file)
@@ -1,3 +1,9 @@
+2006-07-02  Roger Sayle  <roger@eyesopen.com>
+
+       PR middle-end/27428
+       * c-lex.c (c_lex_with_flags) <CPP_N_INVALID>: Increment errorcount
+       to indicate the cpplib has issued an error message for us.
+
 2006-06-23  Richard Guenther  <rguenther@suse.de>
 
        PR middle-end/28045
index f5425ce49e901b09b9da2e06b6427f921e741948..2a7bd3008dcd2951ad858fcb9895141513be8490 100644 (file)
@@ -362,6 +362,7 @@ c_lex_with_flags (tree *value, unsigned char *cpp_flags)
          case CPP_N_INVALID:
            /* cpplib has issued an error.  */
            *value = error_mark_node;
+           errorcount++;
            break;
 
          case CPP_N_INTEGER:
index 1636861d44f09c141a3fcf727fb85437b9e4933f..8ac222ca81a9f803b2d9889a2b96fc4b16c457b2 100644 (file)
@@ -1,3 +1,8 @@
+2006-07-02  Roger Sayle  <roger@eyesopen.com>
+
+       PR middle-end/27428
+       * gcc.dg/pr27428-1.c: New test case.
+
 2006-06-25  Lee Millward  <lee.millward@gmail.com>
 
        PR c++/27821
diff --git a/gcc/testsuite/gcc.dg/pr27428-1.c b/gcc/testsuite/gcc.dg/pr27428-1.c
new file mode 100644 (file)
index 0000000..93a221c
--- /dev/null
@@ -0,0 +1,9 @@
+/* { dg-do compile } */
+/* { dg-options "-O2" } */
+
+void foo()
+{
+    goto L;
+    if (0..) { L: ; }  // { dg-error "too many decimal points" }
+}
+