<div dir="ltr">Hi Mikhail,<div><br></div><div>I'm not aware of any option to do that, and I don't think such an option could work for AArch64 without completely changing the ABI. For AArch64, __builtin_va_list is a struct with 5 members, which is needed because arguments can be passed in a mixture of integer and floating-point registers, and on the stack, so a single pointer can't store all of the necessary state.</div><div><br></div><div>Oliver</div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Thu, 12 Dec 2019 at 17:14, Mikhail Ramalho via cfe-dev <<a href="mailto:cfe-dev@lists.llvm.org">cfe-dev@lists.llvm.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr">Hi all,<div><br></div><div>Is there any way to force __builtin_va_list to always be a char*, regardless of the architecture?</div><div><br></div><div>We are using clang as a frontend in our project and our analysis relies on the fact that __builtin_va_list is a char* on 64 bits architecture as well, but we keep getting:</div><div><br></div><div>|-TypedefDecl 0x4148c78 <<invalid sloc>> <invalid sloc> implicit referenced __builtin_va_list 'struct __va_list_tag [1]'<br>| `-ConstantArrayType 0x4148c20 'struct __va_list_tag [1]' 1 <br>|   `-RecordType 0x4148aa0 'struct __va_list_tag'<br>|     `-Record 0x4148a10 '__va_list_tag'<br></div><div><br></div><div>I've tried several different combinations of defines but to no avail.</div><div><br></div><div>In case it is not possible, we could submit a patch to add an option to force that on clang. A bit of an overkill given that we would be the only users (I think).</div><div><br></div><div>Best,</div><div><div><br></div>-- <br><div dir="ltr"><div dir="ltr"><div><br></div><div>Mikhail Ramalho.</div></div></div></div></div>
_______________________________________________<br>
cfe-dev mailing list<br>
<a href="mailto:cfe-dev@lists.llvm.org" target="_blank">cfe-dev@lists.llvm.org</a><br>
<a href="https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-dev" rel="noreferrer" target="_blank">https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-dev</a><br>
</blockquote></div>