aboutsummaryrefslogtreecommitdiff
path: root/gas/config
diff options
context:
space:
mode:
authorNick Clifton <nickc@redhat.com>2010-04-16 11:20:41 +0000
committerNick Clifton <nickc@redhat.com>2010-04-16 11:20:41 +0000
commitbb7835b8e53aaad0111d20020ab2c2c6310405e1 (patch)
tree90792722480961f131124d5f134482575d6e9951 /gas/config
parent9b79b476a6a6c5776a5676c137bd7d64df4d738b (diff)
downloadfsf-binutils-gdb-bb7835b8e53aaad0111d20020ab2c2c6310405e1.zip
fsf-binutils-gdb-bb7835b8e53aaad0111d20020ab2c2c6310405e1.tar.gz
fsf-binutils-gdb-bb7835b8e53aaad0111d20020ab2c2c6310405e1.tar.bz2
PR gas/11395
* config/tc-hppa.c (pa_ip): Do not allow 64-bit add condition matcher to accept and unconditional 32-bit add instruction. (pa_build_unwind_subspace): Cope with error conditions not allowing the start symbol to be set. * gas/hppa/basic/add2.s: Add test of simple 32-bit instruction. * gas/hppa/basic/basic.exp (do_add2): Add grep for expected disassembly.
Diffstat (limited to 'gas/config')
-rw-r--r--gas/config/tc-hppa.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/gas/config/tc-hppa.c b/gas/config/tc-hppa.c
index 4b7c121..186b347 100644
--- a/gas/config/tc-hppa.c
+++ b/gas/config/tc-hppa.c
@@ -3968,6 +3968,12 @@ pa_ip (char *str)
/* Handle an add condition. */
case 'A':
+ /* PR gas/11395
+ If we are looking for 64-bit add conditions and we
+ do not have the ",*" prefix, then we have no match. */
+ if (*s != ',')
+ break;
+ /* Fall through. */
case 'a':
cmpltr = 0;
flag = 0;
@@ -5969,6 +5975,10 @@ pa_build_unwind_subspace (struct call_info *call_info)
!= (SEC_ALLOC | SEC_LOAD | SEC_READONLY))
return;
+ if (call_info->start_symbol == NULL)
+ /* This can happen if there were errors earlier on in the assembly. */
+ return;
+
/* Replace the start symbol with a local symbol that will be reduced
to a section offset. This avoids problems with weak functions with
multiple definitions, etc. */