[binutils-gdb] as: Reject unknown -gXXX option

H.J. Lu hjl@sourceware.org
Tue Apr 19 17:41:37 GMT 2022


https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=6ea673e2d643b7b2283aa73d35b02dfc9aa7115f

commit 6ea673e2d643b7b2283aa73d35b02dfc9aa7115f
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Sat Apr 16 10:46:05 2022 -0700

    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.

Diff:
---
 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(+)

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'


More information about the Binutils-cvs mailing list