On 6/29/22, LIU Hao <[email protected]> wrote:
> I have been aware of this too. The asm statement is passed an indirection by
> a constant offset in
> the FS/GS segment, which itself is valid, but GCC thinks it was about the
> default DS segment and
> fails to calculate its size.
>
>
> This may be solved for GCC by casting the input offset to a pointer to an
> array of unknown bound. So
> instead of writing
>
>    [offset] "m" ((*(y *) (size_t) Offset))
>
> we write
>
>    [offset] "m" ((*(y (*)[]) (size_t) Offset))
>
>
> Unfortunately Clang does not like this:
>
>    test.c:5:53: error: dereference of pointer to incomplete type 'unsigned
> long[]'
>
> Probably some conditional macros are necessary.

Well, I'm not proficient with gcc inline asm.
So, whatever you guys think is best.


_______________________________________________
Mingw-w64-public mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public

Reply via email to