diff options
author | Nick Clifton <nickc@redhat.com> | 2010-04-16 11:20:41 +0000 |
---|---|---|
committer | Nick Clifton <nickc@redhat.com> | 2010-04-16 11:20:41 +0000 |
commit | bb7835b8e53aaad0111d20020ab2c2c6310405e1 (patch) | |
tree | 90792722480961f131124d5f134482575d6e9951 /gas/config/tc-hppa.c | |
parent | 9b79b476a6a6c5776a5676c137bd7d64df4d738b (diff) | |
download | gdb-bb7835b8e53aaad0111d20020ab2c2c6310405e1.zip gdb-bb7835b8e53aaad0111d20020ab2c2c6310405e1.tar.gz 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/tc-hppa.c')
-rw-r--r-- | gas/config/tc-hppa.c | 10 |
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. */ |