[PATCH 6/6] x86: don't accept base architectures as extensions
Jan Beulich
jbeulich@suse.com
Wed Mar 16 08:48:48 GMT 2022
The -march= intentions are quite clear: A base architecture may be
followed by any number of extensions. Accepting a base architecture in
place of an extension will at best result in confusion, as the first of
the two (or more) items specified simply would not take effect, due to
being overridden by the later one(s).
--- a/gas/config/tc-i386.c
+++ b/gas/config/tc-i386.c
@@ -13263,7 +13263,7 @@ md_parse_option (int c, const char *arg)
*next++ = '\0';
for (j = 0; j < ARRAY_SIZE (cpu_arch); j++)
{
- if (strcmp (arch, cpu_arch [j].name) == 0)
+ if (arch == saved && strcmp (arch, cpu_arch [j].name) == 0)
{
/* Processor. */
if (! cpu_arch[j].flags.bitfield.cpui386)
--- /dev/null
+++ b/gas/testsuite/gas/i386/arch-10-5.l
@@ -0,0 +1,2 @@
+Assembler messages:
+Fatal error: .*
--- /dev/null
+++ b/gas/testsuite/gas/i386/arch-10-5.s
@@ -0,0 +1 @@
+ .text
--- a/gas/testsuite/gas/i386/i386.exp
+++ b/gas/testsuite/gas/i386/i386.exp
@@ -199,6 +199,7 @@ if [gas_32_check] then {
run_list_test "arch-10-2" "-march=i686 -I${srcdir}/$subdir -al"
run_list_test "arch-10-3" "-march=i686+mmx+sse4.2 -I${srcdir}/$subdir -al"
run_list_test "arch-10-4" "-march=i686+mmx+sse4+vmx+smx -I${srcdir}/$subdir -al"
+ run_list_test "arch-10-5" "-march=generic32+i686 -al"
run_dump_test "arch-11"
run_dump_test "arch-12"
run_dump_test "arch-13"
More information about the Binutils
mailing list