This is the mail archive of the binutils-cvs@sourceware.org mailing list for the binutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[binutils-gdb] Accept L and LL suffixes to integer constants.


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

commit 86b80085c889cd388fa677a5ae9053fd4be3776c
Author: Nick Clifton <nickc@redhat.com>
Date:   Fri Nov 11 15:13:07 2016 +0000

    Accept L and LL suffixes to integer constants.
    
    	PR gas/20732
    	* expr.c (integer_constant): If tc_allow_L_suffix is defined and
    	non-zero then accept a L or LL suffix.
    	* testsuite/gas/sparc/pr20732.d: New test source file.
    	* testsuite/gas/sparc/pr20732.d: New test output file.
    	* testsuite/gas/sparc/sparc.exp: Run new test.

Diff:
---
 gas/ChangeLog                     |  9 +++++++++
 gas/expr.c                        |  8 ++++++++
 gas/testsuite/gas/sparc/pr20732.d | 14 ++++++++++++++
 gas/testsuite/gas/sparc/pr20732.s |  3 +++
 gas/testsuite/gas/sparc/sparc.exp |  1 +
 5 files changed, 35 insertions(+)

diff --git a/gas/ChangeLog b/gas/ChangeLog
index 9711d3a..cefa501 100644
--- a/gas/ChangeLog
+++ b/gas/ChangeLog
@@ -1,3 +1,12 @@
+2016-11-11  Nick Clifton  <nickc@redhat.com>
+
+	PR gas/20732
+	* expr.c (integer_constant): If tc_allow_L_suffix is defined and
+	non-zero then accept a L or LL suffix.
+	* testsuite/gas/sparc/pr20732.d: New test source file.
+	* testsuite/gas/sparc/pr20732.d: New test output file.
+	* testsuite/gas/sparc/sparc.exp: Run new test.
+
 2016-11-11  Szabolcs Nagy  <szabolcs.nagy@arm.com>
 
 	* testsuite/gas/aarch64/pac.s: Add ARMv8.3 branch instruction tests.
diff --git a/gas/expr.c b/gas/expr.c
index 1cdd081..e8d553d 100644
--- a/gas/expr.c
+++ b/gas/expr.c
@@ -515,6 +515,14 @@ integer_constant (int radix, expressionS *expressionP)
   if (tc_allow_U_suffix && (c == 'U' || c == 'u'))
     c = * input_line_pointer++;
 
+#ifndef tc_allow_L_suffix
+#define tc_allow_L_suffix 1
+#endif
+  /* PR 20732: Look for, and ignore, a L or LL suffix to the number.  */
+  if (tc_allow_L_suffix)
+    while (c == 'L' || c == 'l')
+      c = * input_line_pointer++;
+
   if (small)
     {
       /* Here with number, in correct radix. c is the next char.
diff --git a/gas/testsuite/gas/sparc/pr20732.d b/gas/testsuite/gas/sparc/pr20732.d
new file mode 100644
index 0000000..1d3ddbe
--- /dev/null
+++ b/gas/testsuite/gas/sparc/pr20732.d
@@ -0,0 +1,14 @@
+#as: 
+#objdump: -dr --prefix-addresses
+#name: PR20732 - make sure that the L and LL suffix is accepted on constant values
+
+.*: +file format .*
+
+Disassembly of section .text:
+[0x]+000.*sethi[ 	]+%hi\(0x3b9ac800\), %l5
+[0x]+004.*or[ 	]+%l5, 0x200, %l5.*
+[0x]+008.*sethi[ 	]+%hi\(0x3b9ac800\), %l5
+[0x]+00c.*or[ 	]+%l5, 0x200, %l5.*
+[0x]+010.*sethi[ 	]+%hi\(0x3b9ac800\), %l5
+[0x]+014.*or[ 	]+%l5, 0x200, %l5.*
+#pass
diff --git a/gas/testsuite/gas/sparc/pr20732.s b/gas/testsuite/gas/sparc/pr20732.s
new file mode 100644
index 0000000..265c880
--- /dev/null
+++ b/gas/testsuite/gas/sparc/pr20732.s
@@ -0,0 +1,3 @@
+set    1000000000, %l5
+set    1000000000L, %l5
+set    1000000000LL, %l5
diff --git a/gas/testsuite/gas/sparc/sparc.exp b/gas/testsuite/gas/sparc/sparc.exp
index cba2d09..580656f 100644
--- a/gas/testsuite/gas/sparc/sparc.exp
+++ b/gas/testsuite/gas/sparc/sparc.exp
@@ -101,6 +101,7 @@ if [istarget sparc*-*-*] {
     run_list_test "pr19910-2"
     run_dump_test "dcti-couples-v8"
     run_dump_test "dcti-couples-v9c"
+    run_dump_test "pr20732"
 }
 
 if [istarget sparc-*-vxworks*] {


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]