Bug 12287 - C++ throws fail when using latest GNU assembler on IA64
Summary: C++ throws fail when using latest GNU assembler on IA64
Status: RESOLVED DUPLICATE of bug 12282
Alias: None
Product: binutils
Classification: Unclassified
Component: gas (show other bugs)
Version: 2.22
: P2 normal
Target Milestone: ---
Assignee: unassigned
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2010-12-03 21:08 UTC by Steve Ellcey
Modified: 2010-12-06 17:33 UTC (History)
2 users (show)

See Also:
Host:
Target:
Build:
Last reconfirmed:
Project(s) to access:
ssh public key:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Steve Ellcey 2010-12-03 21:08:00 UTC
C++ programs that include throws, like:

struct Bar { ~Bar() { throw 1; } };
int main()
{
  try { Bar f; }
  catch(int i) { return 0; }
  return 0;
}

fail when I use the latest gnu assembler.  This starts after this checkin:

2010-12-01  Maciej W. Rozycki  <macro@codesourcery.com>

        * symbols.h (dot_symbol): New declaration.
        (dot_symbol_init): New prototype.
        * symbols.c (dot_symbol): New variable.
        (symbol_clone): Assert it's not dot_symbol being cloned.
        (dot_symbol_init): New function.
        (symbol_clone_if_forward_ref): Create a new temporary symbol
        when trying to clone dot_symbol.
        * expr.c (current_location): Refer to dot_symbol instead of
        making a new temporary symbol.
        * read.c (read_a_source_file): Update dot_symbol as we go.
        * as.c (main): Call dot_symbol_init.

Also, before this change I got 3 failures in the GAS testsuite:

FAIL: ia64 unwind descriptors
FAIL: lns-duplicate
FAIL: lns-common-1

After this change I get five failures:

FAIL: ia64 unwind relocations (ilp32)
FAIL: ia64 proc
FAIL: ia64 unwind descriptors
FAIL: lns-duplicate
FAIL: lns-common-1

I have tried using objdump to find the difference in the object files
before and after the gas change but the output of objdump is the same
before and after so I am not sure what the problem is.

I have been investigating this on ia64-hp-hpux11.23 but I believe it
can be reproduced on an ia64-*-linux-gnu platform as well.
Comment 1 H.J. Lu 2010-12-06 05:26:40 UTC
Binutils from CVS as of 2010-12-06 works fine on Linux/ia64.
Comment 2 Maciej W. Rozycki 2010-12-06 17:33:43 UTC

*** This bug has been marked as a duplicate of bug 12282 ***