We crashed when given --help=^ and Kyrill explained why in the PR (<https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71063#c2>). The following seems as good a fix as any, I think.
Bootstrapped/regtested on x86_64-linux, ok for trunk? 2016-05-11 Marek Polacek <pola...@redhat.com> PR driver/71063 * opts.c (common_handle_option): Detect missing argument for --help^. * gcc.dg/opts-7.c: New test. diff --git gcc/opts.c gcc/opts.c index 0f9431a..71e0779 100644 --- gcc/opts.c +++ gcc/opts.c @@ -1640,6 +1640,11 @@ common_handle_option (struct gcc_options *opts, if (* a == '^') { ++ a; + if (*a == '\0') + { + error_at (loc, "missing argument to %qs", "--help=^"); + break; + } pflags = & exclude_flags; } else diff --git gcc/testsuite/gcc.dg/opts-7.c gcc/testsuite/gcc.dg/opts-7.c index e69de29..c54d0b8 100644 --- gcc/testsuite/gcc.dg/opts-7.c +++ gcc/testsuite/gcc.dg/opts-7.c @@ -0,0 +1,6 @@ +/* PR driver/71063 */ +/* Test we don't ICE. */ +/* { dg-do compile } */ +/* { dg-options "--help=^" } */ + +/* { dg-error "missing argument to" "" { target *-*-* } 0 } */ Marek