[Bug 106] New: [ARM] pragma(mangle) not working if -fsection-anchors is enabled

gdc-bugzilla at gdcproject.org gdc-bugzilla at gdcproject.org
Sat Feb 15 06:04:32 PST 2014


http://bugzilla.gdcproject.org/show_bug.cgi?id=106

             Bug #: 106
           Summary: [ARM] pragma(mangle) not working if -fsection-anchors
                    is enabled
    Classification: Unclassified
           Product: GDC
           Version: development
          Platform: ARM
        OS/Version: All
            Status: NEW
          Severity: minor
          Priority: Normal
         Component: gdc
        AssignedTo: ibuclaw at gdcproject.org
        ReportedBy: johannespfau at gmail.com


------------------------------
__gshared pragma(mangle, "test_эльфийские_письмена_9") int test9_1;
__gshared extern pragma(mangle, "test_эльфийские_письмена_9") int test9_1_e;

void main()
{
    test9_1 = 42;
    assert(test9_1_e == 42);
}
------------------------------
Compile with '-O2'

Problem: GCC references test9_1 via section anchors, test9_1_e is always done
via a linker relocation to test_эльфийские_письмена_9. The backend then doesn't
realize that test9_1 and test9_1_e are actually the same variable and switches
the order of the assignment and the assert.

The same as a C example:
-----------------------------
int test9_1 asm ("test_эльфийские_письмена_9");
extern int test9_1_e asm ("test_эльфийские_письмена_9");

int main()
{
    test9_1 = 42;
    return test9_1_e == 42;
}
-----------------------------

Works as expected.

-- 
Configure bugmail: http://bugzilla.gdcproject.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are watching all bug changes.


More information about the D.gnu mailing list