aboutsummaryrefslogtreecommitdiff
path: root/gas
diff options
context:
space:
mode:
authorJan Beulich <jbeulich@suse.com>2022-05-18 09:38:40 +0200
committerJan Beulich <jbeulich@suse.com>2022-05-18 09:38:40 +0200
commit85aaf32e610e01ccde008e5bbfd6df95558dbeae (patch)
treecd31f7b28b1e7b5b7495f94a57e9f634b957dc00 /gas
parent9c70556165e97c43a2d7e829211e2c15fd7b3582 (diff)
downloadgdb-85aaf32e610e01ccde008e5bbfd6df95558dbeae.zip
gdb-85aaf32e610e01ccde008e5bbfd6df95558dbeae.tar.gz
gdb-85aaf32e610e01ccde008e5bbfd6df95558dbeae.tar.bz2
gas: avoid octal numbers being accepted when processing .linefile
Compilers would put decimal numbers there, so I think we should treat finding octal numbers the same as finding bignums - ignore them as actually being comments of some very specific form.
Diffstat (limited to 'gas')
-rw-r--r--gas/read.c8
-rw-r--r--gas/testsuite/gas/all/linefile.l1
-rw-r--r--gas/testsuite/gas/all/linefile.s3
3 files changed, 12 insertions, 0 deletions
diff --git a/gas/read.c b/gas/read.c
index 8524d0b..704e6f1 100644
--- a/gas/read.c
+++ b/gas/read.c
@@ -2047,6 +2047,14 @@ get_linefile_number (int *flag)
if (*input_line_pointer < '0' || *input_line_pointer > '9')
return false;
+ /* Don't mistakenly interpret octal numbers as line numbers. */
+ if (*input_line_pointer == '0')
+ {
+ *flag = 0;
+ ++input_line_pointer;
+ return true;
+ }
+
expression_and_evaluate (&exp);
if (exp.X_op != O_constant)
return false;
diff --git a/gas/testsuite/gas/all/linefile.l b/gas/testsuite/gas/all/linefile.l
index 7a5f700..089f328 100644
--- a/gas/testsuite/gas/all/linefile.l
+++ b/gas/testsuite/gas/all/linefile.l
@@ -2,4 +2,5 @@
.*linefile\.s: Assembler messages:
.*linefile\.s:2: Warning: line 2
.*linefile\.s:5: Warning: line 5
+.*linefile\.s:8: Warning: line 8
#pass
diff --git a/gas/testsuite/gas/all/linefile.s b/gas/testsuite/gas/all/linefile.s
index 4b34fee..ac0eb3f 100644
--- a/gas/testsuite/gas/all/linefile.s
+++ b/gas/testsuite/gas/all/linefile.s
@@ -3,3 +3,6 @@
# 123456789123456789123456789 "LINEfile.s"
.warning "line 5"
+
+# 0123456789 "lineFILE.s"
+ .warning "line 8"