Hi guys, Please, take a look at this patch. It fixes the invalid star symbol processing in validate_switches function reported in GCC bugzilla: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51020
With this patch invalid options are no longer accepted by the compiler (see new testcase for more details). It showed no regressions on GCC-4.6.3 on ARM. ChangeLog: * gcc/gcc.c(validate_switches): Reset starred flag. * gcc/testsuite/gcc.target/arm/pr51020.c: New test. -- Alexey Kravets [email protected] local ext. 3964
diff --git a/gcc/gcc.c b/gcc/gcc.c
index 75f522e..e3c8609 100644
--- a/gcc/gcc.c
+++ b/gcc/gcc.c
@@ -7023,11 +7023,12 @@ validate_switches (const char *start)
size_t len;
int i;
bool suffix = false;
- bool starred = false;
+ bool starred;
#define SKIP_WHITE() do { while (*p == ' ' || *p == '\t') p++; } while (0)
next_member:
+ starred = false;
SKIP_WHITE ();
if (*p == '!')
diff --git a/gcc/testsuite/gcc.target/arm/pr51020.c b/gcc/testsuite/gcc.target/arm/pr51020.c
new file mode 100644
index 0000000..ac77dc1
--- /dev/null
+++ b/gcc/testsuite/gcc.target/arm/pr51020.c
@@ -0,0 +1,5 @@
+/* PR 51020 */
+/* { dg-do compile { target arm*-*-* } } */
+/* { dg-options "---" { target arm*-*-* } } */
+int main() {return 0;}
+/* { dg-error "unrecognized option '---'" "" { target *-*-* } 0 } */
--
1.7.5.4
signature.asc
Description: Digital signature
