aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJan Beulich <jbeulich@suse.com>2022-03-17 11:05:56 +0100
committerJan Beulich <jbeulich@suse.com>2022-03-17 11:05:56 +0100
commited971d9fa65b91a91101d23a968e6244b93d008d (patch)
treeb8d109b1a6e6f0c64b5fc957531af9e617ee8070
parent13ed231a0fad6e5988673dc8fde3996ad0136735 (diff)
downloadgdb-ed971d9fa65b91a91101d23a968e6244b93d008d.zip
gdb-ed971d9fa65b91a91101d23a968e6244b93d008d.tar.gz
gdb-ed971d9fa65b91a91101d23a968e6244b93d008d.tar.bz2
x86: don't accept base architectures as extensions
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).
-rw-r--r--gas/config/tc-i386.c2
-rw-r--r--gas/testsuite/gas/i386/arch-10-5.l2
-rw-r--r--gas/testsuite/gas/i386/arch-10-5.s1
-rw-r--r--gas/testsuite/gas/i386/i386.exp1
4 files changed, 5 insertions, 1 deletions
diff --git a/gas/config/tc-i386.c b/gas/config/tc-i386.c
index 1ff5fd8..1cc14fe 100644
--- a/gas/config/tc-i386.c
+++ b/gas/config/tc-i386.c
@@ -13262,7 +13262,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)
diff --git a/gas/testsuite/gas/i386/arch-10-5.l b/gas/testsuite/gas/i386/arch-10-5.l
new file mode 100644
index 0000000..25dc404a
--- /dev/null
+++ b/gas/testsuite/gas/i386/arch-10-5.l
@@ -0,0 +1,2 @@
+Assembler messages:
+Fatal error: .*
diff --git a/gas/testsuite/gas/i386/arch-10-5.s b/gas/testsuite/gas/i386/arch-10-5.s
new file mode 100644
index 0000000..09cc1e1
--- /dev/null
+++ b/gas/testsuite/gas/i386/arch-10-5.s
@@ -0,0 +1 @@
+ .text
diff --git a/gas/testsuite/gas/i386/i386.exp b/gas/testsuite/gas/i386/i386.exp
index da5c2f6..3c157e9 100644
--- 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"