On Nov 8, 2012, at 2:33 PM, Aaron Ballman wrote: > I finally had the chance to dig a bit deeper into this... > > I'm not certain we'd need to do anything aside from fix 64-bit > mangling of pointers, truth be told. From looking at the > documentation, it seems those type attributes are ignored on Windows. > It doesn't appear that cl mangles them identically, regardless of > target architecture (including ARM). So which is it? Are they ignored or not? From the looks of it... > > Namely: > // Code > int * __ptr32 p32; > int * __ptr64 p64; > > // Assembly > PUBLIC ?p32@@3PAHA ; p32 > PUBLIC ?p64@@3PEAHEA ; p64 > > Those mangled names are the same when I compile for x86, x64 and ARM, > so empirical testing seems to agree with documented behavior from > MSDN. ...I'd say not, because their mangled names are clearly different. > > Basically, I think we can parse and eat __ptr64 and __ptr32, and > simply mangle as proper for the native architecture and be fine. But if a program uses explicit `__ptr32` or `__ptr64`, we won't be fine because the names will get mangled wrong. This--this right here--is exactly why I held off on implementing this.
Chip _______________________________________________ cfe-commits mailing list [email protected] http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
