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).

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.

Basically, I think we can parse and eat __ptr64 and __ptr32, and
simply mangle as proper for the native architecture and be fine.

~Aaron

On Thu, Nov 8, 2012 at 4:15 PM, Charles Davis <[email protected]> wrote:
>
>   Files still have wrong line endings (should be LF, not CR-LF). That's kinda 
> annoying, because when the commit goes through, we'll see basically the whole 
> file diff'd and we can't see where the actual, substantial changes took place.
>
>
> ================
> Comment at: test/CodeGenCXX/mangle-ms-ptr64.cpp:7-9
> @@ +6,5 @@
> +
> +// CHECK: @"\01?VS_p32@@3PAHA" = global i32* null
> +// CHK64: @"\01?VS_p32@@3PAHA" = global i32* null
> +int * __ptr32 VS_p32;
> +
> ----------------
> Clang currently recognizes the `__ptr32` and `__ptr64` keywords, but doesn't 
> yet attach them to the declaration. We haven't yet worked out exactly how to 
> do that. One way might be to assign the non-native pointer size (i.e. 
> `__ptr32` in 64-bit mode and `__ptr64` in 32-bit mode) to a different address 
> space. But that requires Micah's pointer-sizes-in-address-spaces work, which 
> was just recently reverted.
>
> I'm open to suggestions.
>
>
> http://llvm-reviews.chandlerc.com/D101
> _______________________________________________
> cfe-commits mailing list
> [email protected]
> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits

_______________________________________________
cfe-commits mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits

Reply via email to