aboutsummaryrefslogtreecommitdiff
path: root/gas/testsuite
diff options
context:
space:
mode:
authorNick Clifton <nickc@redhat.com>2016-04-07 12:34:06 +0100
committerNick Clifton <nickc@redhat.com>2016-04-07 12:34:06 +0100
commite140100a5da85568e83ffe8e77d3f5e4a59ddee8 (patch)
treec9dbe69c7bf5550b708733dcb153336c940bd541 /gas/testsuite
parentdf154dc15f5385c9ec3b998788536dede9882393 (diff)
downloadgdb-e140100a5da85568e83ffe8e77d3f5e4a59ddee8.zip
gdb-e140100a5da85568e83ffe8e77d3f5e4a59ddee8.tar.gz
gdb-e140100a5da85568e83ffe8e77d3f5e4a59ddee8.tar.bz2
Allow integer contants to have a U suffix. Improve error reporting for missing closing parentheses.
PR gas/19910 * config/tc-sparc.c (sparc_ip): Report an error if the expression inside a %-macro could not be fully parsed. * expr.c (integer_constant): Accept and ignore U suffixes to integers. (operand): When a missing closing parenthesis is encountered, report the character that was found instead. * testsuite/gas/mips/tls-ill.l: Update expected error message. * testsuite/gas/sparc/pr19910-1.d: New test driver. * testsuite/gas/sparc/pr19910-1.s: New test. * testsuite/gas/sparc/pr19910-2.l: Expected error output. * testsuite/gas/sparc/pr19910-2.s: New test. * testsuite/gas/sparc/sparc.exp: Run the new tests.
Diffstat (limited to 'gas/testsuite')
-rw-r--r--gas/testsuite/gas/mips/tls-ill.l4
-rw-r--r--gas/testsuite/gas/sparc/pr19910-1.d10
-rw-r--r--gas/testsuite/gas/sparc/pr19910-1.s8
-rw-r--r--gas/testsuite/gas/sparc/pr19910-2.l4
-rw-r--r--gas/testsuite/gas/sparc/pr19910-2.s5
-rw-r--r--gas/testsuite/gas/sparc/sparc.exp3
6 files changed, 32 insertions, 2 deletions
diff --git a/gas/testsuite/gas/mips/tls-ill.l b/gas/testsuite/gas/mips/tls-ill.l
index 8085f82..0057bd1 100644
--- a/gas/testsuite/gas/mips/tls-ill.l
+++ b/gas/testsuite/gas/mips/tls-ill.l
@@ -4,8 +4,8 @@
.*:7: Error: bad expression
.*:7: Error: invalid operands `addiu \$4,\$28,%tprel\(tlsvar\)'
.*:8: Error: bad expression
-.*:8: Error: missing '\)'
+.*:8: Error: found 'g', expected: '\)'
.*:8: Error: invalid operands `addiu \$4,\$28,%lo\(%gottprel\(tlsvar\)\)'
.*:9: Error: bad expression
-.*:9: Error: missing '\)'
+.*:9: Error: found 'g', expected: '\)'
.*:9: Error: invalid operands `addiu \$4,\$28,%hi\(%gottprel\(tlsvar\)\)'
diff --git a/gas/testsuite/gas/sparc/pr19910-1.d b/gas/testsuite/gas/sparc/pr19910-1.d
new file mode 100644
index 0000000..10874e9
--- /dev/null
+++ b/gas/testsuite/gas/sparc/pr19910-1.d
@@ -0,0 +1,10 @@
+#as:
+#objdump: -dr --prefix-addresses
+#name: PR19910 - make sure that U suffix is accepted
+
+.*: +file format .*
+
+Disassembly of section .text:
+0x0+000 sethi[ ]+%hi\(0x4000\), %g1
+0x0+004 mov[ ]+0x40, %g1
+0x0+008 mov[ ]+4, %g1
diff --git a/gas/testsuite/gas/sparc/pr19910-1.s b/gas/testsuite/gas/sparc/pr19910-1.s
new file mode 100644
index 0000000..07e8ce0
--- /dev/null
+++ b/gas/testsuite/gas/sparc/pr19910-1.s
@@ -0,0 +1,8 @@
+ # U suffix should not trigger an error.
+ sethi %hi(0x4000U), %g1
+
+ # U suffix should not prevent evaluation of the expression.
+ or %g0, %lo(0x400U + 0x40U), %g1
+
+ # U suffix should not confuse multiple layers of parentheses.
+ or %g0, %lo((0x4000U + 0x4U)), %g1
diff --git a/gas/testsuite/gas/sparc/pr19910-2.l b/gas/testsuite/gas/sparc/pr19910-2.l
new file mode 100644
index 0000000..8c8f778
--- /dev/null
+++ b/gas/testsuite/gas/sparc/pr19910-2.l
@@ -0,0 +1,4 @@
+.*pr19910-2.s: Assembler messages:
+.*pr19910-2.s:2: Error: Expression inside %hi could not be parsed
+.*pr19910-2.s:5: Error: found 'V', expected: '\)'
+.*pr19910-2.s:5: Error: Expression inside %lo could not be parsed
diff --git a/gas/testsuite/gas/sparc/pr19910-2.s b/gas/testsuite/gas/sparc/pr19910-2.s
new file mode 100644
index 0000000..e694006
--- /dev/null
+++ b/gas/testsuite/gas/sparc/pr19910-2.s
@@ -0,0 +1,5 @@
+ # Mistyping V instead of U should trigger an error message
+ sethi %hi(0x4000V), %g1
+
+ # A different error can be expected when there are multiple layers of parentheses.
+ or %g0, %lo((0x4000V + 0x4U)), %g1
diff --git a/gas/testsuite/gas/sparc/sparc.exp b/gas/testsuite/gas/sparc/sparc.exp
index d7d6396..3e7cc4c 100644
--- a/gas/testsuite/gas/sparc/sparc.exp
+++ b/gas/testsuite/gas/sparc/sparc.exp
@@ -97,6 +97,9 @@ if [istarget sparc*-*-*] {
run_dump_test "natural-32"
run_list_test "pr4587" ""
+
+ run_dump_test "pr19910-1"
+ run_list_test "pr19910-2"
}
if [istarget sparc-*-vxworks*] {