OpenSolaris

Printable Version Enter a New Search
Bug ID 6426048
Synopsis C++ exceptions broken for amd64
State 10-Fix Delivered (Fix available in build)
Category:Subcategory compiler:linker
Keywords
Responsible Engineer Rod Evans
Reported Against patch_01
Duplicate Of
Introduced In solaris_nevada
Commit to Fix snv_41
Fixed In snv_41
Release Fixed solaris_nevada(snv_41) , solaris_10u4(s10u4_04) (Bug ID:2141954)
Related Bugs 6316708 , 6432004 , 6438497
Submit Date 16-May-2006
Last Update Date 29-January-2007
Description
C++ exceptions were working in nevada build 19, but are broken in build 38. Test case:

extern "C" int printf(const char*, ...);
int main()
{
    try {
        throw 1;
    }
    catch(int) {
        printf("ok\n");
    }
    return 0;
}

Compile with Sun C++ compiler using -xarch=amd64 option. Run the a.out, and it should print "ok". Instead, it core dumps. Using the same C++ runtime library (libCrun.so.1) on S10u1 works, but on nevada build 38 the program crashes.

Something has gone wrong in the unwind code in /lib/64/libc.so.1 on amd64.
Work Around
N/A
Comments
N/A