r208053, thanks!

On Mon, May 5, 2014 at 2:30 PM, Reid Kleckner <[email protected]> wrote:
> LGTM
>
> I looked at this once before, but I thought MSVC only supported lookup
> through typedefs.  Turns out I was wrong.  MSVC doesn't accept your test
> case, but they do accept:
>
> struct A {
>   int a;
>   int b;
> };
> int foo(A *a) {
>   __asm  {
>     mov eax, a
>     mov eax, [eax]A.b
>   }
> }
>
>
> On Sat, May 3, 2014 at 5:26 PM, Nico Weber <[email protected]> wrote:
>>
>> Hi,
>>
>> while looking at something else, I learned that with -fasm-blocks,
>> clang understands
>>
>>   typedef struct {
>>     int a;
>>     int b;
>>   } A;
>>   __asm mov eax, [eax].A.b
>>
>> It only supports typedefs though, not the same thing with `using A =
>> struct { ... };`, and also not the direct `struct A { ... }`. This
>> seems inconsistent, so the attached patch adds support for that. I
>> don't know if adding such support is useful or desirable, but since I
>> already wrote the 4 lines to make it work I figured I could at least
>> send out the patch :-)
>>
>> Nico
>>
>> ps: Fun fact: With s/struct/class/ in the snippet above, clang does
>> print "error: 'b' is a private member of 'A'" (yay!) but does so
>> without a source location (boo!, but understandable I suppose.)
>
>
_______________________________________________
cfe-commits mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits

Reply via email to