This is an archive of the discontinued LLVM Phabricator instance.

Remove some legacy mingw-w64 gcc struct info
ClosedPublic

Authored by martell on Oct 29 2015, 9:18 AM.

Details

Summary

GCC versions starting at 4.8+ conform to standard Windows 64-bit ABI.
Not quite sure if we should keep this to support mingw-w64 and gcc 4.6
Thoughts ?

Also it seems to fix:
https://llvm.org/bugs/show_bug.cgi?id=24408&list_id=75541

Thanks to awson for the tip

Diff Detail

Event Timeline

martell updated this revision to Diff 38744.Oct 29 2015, 9:18 AM
martell retitled this revision from to Remove some legacy mingw-w64 gcc struct info.
martell updated this object.
martell added a reviewer: rnk.
martell added a subscriber: cfe-commits.
awson added a subscriber: awson.Oct 29 2015, 10:57 AM

Btw, It is a terrible bug.

It is hard to imagine how much C++ code it renders broken on 64-bit mingw-w64 clang. For example, any of hashtable-using code doesn't work etc etc.

rnk edited edge metadata.Oct 29 2015, 12:23 PM
rnk added a subscriber: rafael.

Rafael, we don't support pre GCC 4.7 mingw right? They switched to thiscall on 32bit, right? I think we can take a break for x64.

Correct. I we just switched to the 4.7 abi in r197163.

Cheers,
Rafael

martell added a subscriber: chapuni.Nov 2 2015, 6:16 AM

Ohh wow thats dated Dec 12 2013
I assume this would be suitable for 3.7.x then also.
This was originally introduced by @chapuni in rL126186
No test case seems to be present for this so I think this should be good to commit.
@rnk LGTY ?

rnk accepted this revision.Nov 2 2015, 2:20 PM
rnk edited edge metadata.

Yeah, lgtm.

This revision is now accepted and ready to land.Nov 2 2015, 2:20 PM
This revision was automatically updated to reflect the committed changes.

Sorry, I supposed someone removed it. It was really buggy in past.

From what I can gather it made sense at the time of gcc 4.6 so I don't think anyone is at fault :)