diff options
author | Magnus Granberg <zorry@gentoo.org> | 2012-02-08 21:37:50 +0000 |
---|---|---|
committer | Joseph Myers <jsm28@gcc.gnu.org> | 2012-02-08 21:37:50 +0000 |
commit | 5371f7195e823bd69cf7e00444248ff44ce0a3d1 (patch) | |
tree | b3756628f1bc15d5812ce3794fe368ffa9ee1f0b /gcc | |
parent | 893f430128424f440c6be9bcfd31a1b763307304 (diff) | |
download | gcc-5371f7195e823bd69cf7e00444248ff44ce0a3d1.zip gcc-5371f7195e823bd69cf7e00444248ff44ce0a3d1.tar.gz gcc-5371f7195e823bd69cf7e00444248ff44ce0a3d1.tar.bz2 |
re PR driver/48524 (spec language does not cover switches with separated form)
2012-02-08 Magnus Granberg <zorry@gentoo.org>
PR driver/48524
* gcc.c (switch_matches) Support switches with separated form, -D
and -U.
testsuite:
* gcc.dg/pr48524.c: New test.
* gcc.dg/pr48524.spec: New spec file for test.
From-SVN: r184022
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/gcc.c | 15 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/pr48524.c | 6 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/pr48524.spec | 5 |
5 files changed, 38 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 59369ed..e44e4b8 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2012-02-08 Magnus Granberg <zorry@gentoo.org> + + PR driver/48524 + * gcc.c (switch_matches) Support switches with separated form, -D + and -U. + 2012-02-08 Georg-Johann Lay <avr@gjlay.de> * config/avr/avr.md (SREG_ADDR): Remove constant definition. @@ -5455,6 +5455,21 @@ switch_matches (const char *atom, const char *end_atom, int starred) && check_live_switch (i, plen)) return true; + /* Check if a switch with separated form matching the atom. + We check -D and -U switches. */ + else if (switches[i].args != 0) + { + if ((*switches[i].part1 == 'D' || *switches[i].part1 == 'U') + && *switches[i].part1 == atom[0]) + { + if (!strncmp (switches[i].args[0], &atom[1], len - 1) + && (starred || (switches[i].part1[1] == '\0' + && switches[i].args[0][len - 1] == '\0')) + && check_live_switch (i, (starred ? 1 : -1))) + return true; + } + } + return false; } diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index a56acd8..58b71d1 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,9 @@ +2012-02-08 Magnus Granberg <zorry@gentoo.org> + + PR driver/48524 + * gcc.dg/pr48524.c: New test. + * gcc.dg/pr48524.spec: New spec file for test. + 2012-02-08 Thomas Koenig <tkoenig@gcc.gnu.org> PR fortran/32380 diff --git a/gcc/testsuite/gcc.dg/pr48524.c b/gcc/testsuite/gcc.dg/pr48524.c new file mode 100644 index 0000000..d7e46a7 --- /dev/null +++ b/gcc/testsuite/gcc.dg/pr48524.c @@ -0,0 +1,6 @@ +/* { dg-do preprocess } */ +/* { dg-options "-specs=${srcdir}/gcc.dg/pr48524.spec -D_TEST_D" } */ +# ifdef _FOO +# error works /* { dg-error "works" } */ +# endif + diff --git a/gcc/testsuite/gcc.dg/pr48524.spec b/gcc/testsuite/gcc.dg/pr48524.spec new file mode 100644 index 0000000..8569360 --- /dev/null +++ b/gcc/testsuite/gcc.dg/pr48524.spec @@ -0,0 +1,5 @@ +*cpp_options: +%(cpp_unique_options) %1 %{m*} %{std*&ansi&trigraphs} %{W*&pedantic*} %{w}\ + %{f*} %{g*:%{!g0:%{g*} %{!fno-working-directory:-fworking-directory}}} %{O*}\ + %{undef} %{save-temps*:-fpch-preprocess} %{D_TEST_D:-D_FOO} + |