From 6ea673e2d643b7b2283aa73d35b02dfc9aa7115f Mon Sep 17 00:00:00 2001 From: "H.J. Lu" Date: Sat, 16 Apr 2022 10:46:05 -0700 Subject: [PATCH] as: Reject unknown -gXXX option * as.c (parse_args): Reject unknown -gXXX option. * testsuite/gas/all/empty.s: New file. * testsuite/gas/all/pr29067.d: Likewise. * testsuite/gas/all/pr29067.err: Likewise. * testsuite/gas/all/gas.exp: Run pr29067. --- gas/as.c | 2 ++ gas/testsuite/gas/all/empty.s | 1 + gas/testsuite/gas/all/gas.exp | 1 + gas/testsuite/gas/all/pr29067.d | 2 ++ gas/testsuite/gas/all/pr29067.err | 2 ++ 5 files changed, 8 insertions(+) create mode 100644 gas/testsuite/gas/all/empty.s create mode 100644 gas/testsuite/gas/all/pr29067.d create mode 100644 gas/testsuite/gas/all/pr29067.err diff --git a/gas/as.c b/gas/as.c index f320bac89b5..0262a6fec98 100644 --- a/gas/as.c +++ b/gas/as.c @@ -836,6 +836,8 @@ This program has absolutely no warranty.\n")); versions/sections/options. */ if (startswith (old_argv[optind - 1], "-gdwarf")) as_fatal (_("unknown DWARF option %s\n"), old_argv[optind - 1]); + else if (old_argv[optind - 1][1] == 'g' && optarg != NULL) + as_fatal (_("unknown option `%s'"), old_argv[optind - 1]); if (md_debug_format_selector) debug_type = md_debug_format_selector (& use_gnu_debug_info_extensions); diff --git a/gas/testsuite/gas/all/empty.s b/gas/testsuite/gas/all/empty.s new file mode 100644 index 00000000000..6ac6c76e752 --- /dev/null +++ b/gas/testsuite/gas/all/empty.s @@ -0,0 +1 @@ +/* Empty input. */ diff --git a/gas/testsuite/gas/all/gas.exp b/gas/testsuite/gas/all/gas.exp index ae7957b2ee0..db927121f63 100644 --- a/gas/testsuite/gas/all/gas.exp +++ b/gas/testsuite/gas/all/gas.exp @@ -506,3 +506,4 @@ run_dump_test "pr27384" run_dump_test "pr27381" run_dump_test "multibyte1" run_dump_test "multibyte2" +run_dump_test "pr29067" diff --git a/gas/testsuite/gas/all/pr29067.d b/gas/testsuite/gas/all/pr29067.d new file mode 100644 index 00000000000..17a8eefe454 --- /dev/null +++ b/gas/testsuite/gas/all/pr29067.d @@ -0,0 +1,2 @@ +#as: -gsomething-not-already-a-long-option +#error_output: pr29067.err diff --git a/gas/testsuite/gas/all/pr29067.err b/gas/testsuite/gas/all/pr29067.err new file mode 100644 index 00000000000..e5a1b27d644 --- /dev/null +++ b/gas/testsuite/gas/all/pr29067.err @@ -0,0 +1,2 @@ +Assembler messages: +Fatal error: unknown option `-gsomething-not-already-a-long-option' -- 2.30.2