<div dir="ltr">Unit test ImportVAArgExpr fails on Windows. The source file:<div><br></div><div><p style="margin:0in;font-family:Calibri;font-size:11pt" lang="en-US">void
declToImport(__builtin_va_list list, ...) {</p>

<p style="margin:0in;font-family:Calibri;font-size:11pt" lang="en-US">  (void)__builtin_va_arg(list, int);</p>

<p style="margin:0in;font-family:Calibri;font-size:11pt" lang="en-US">}</p><p style="margin:0in;font-family:Calibri;font-size:11pt" lang="en-US"><br></p><p style="margin:0in;font-family:Calibri;font-size:11pt" lang="en-US">When compiled on Windows it produces AST:</p><p style="margin:0in;font-family:Calibri;font-size:11pt" lang="en-US"><br></p><p style="margin:0in" lang="en-US"><font face="Calibri"><span style="font-size:14.6667px">TranslationUnitDecl 0x638f150 <<invalid sloc>> <invalid sloc></span></font></p><p style="margin:0in" lang="en-US"><span style="font-size:14.6667px;font-family:Calibri"><skipped></span></p><p style="margin:0in" lang="en-US"><span style="font-size:14.6667px;font-family:Calibri">`-FunctionDecl 0x638f780 <test.cpp:1:1, line:3:1> line:1:6 declToImport 'void (__builtin_va_list, ...)'</span><br></p><p style="margin:0in" lang="en-US"><font face="Calibri"><span style="font-size:14.6667px">  |-ParmVarDecl 0x638f6e0 <col:19, col:37> col:37 used list '__builtin_va_list':'char *'</span></font></p><p style="margin:0in" lang="en-US"><font face="Calibri"><span style="font-size:14.6667px">  `-CompoundStmt 0x638f880 <col:48, line:3:1></span></font></p><p style="margin:0in" lang="en-US"><font face="Calibri"><span style="font-size:14.6667px">    `-CStyleCastExpr 0x638f868 <line:2:3, col:35> 'void' <ToVoid></span></font></p><p style="margin:0in" lang="en-US"><font face="Calibri"><span style="font-size:14.6667px">      `-VAArgExpr 0x638f848 <col:9, col:35> 'int'</span></font></p><p style="margin:0in" lang="en-US"><font face="Calibri"><span style="font-size:14.6667px">        `-DeclRefExpr 0x638f820 <col:26> '__builtin_va_list':'char *' lvalue ParmVar 0x638f6e0 'list' '__builtin_va_list':'char *'</span></font></p></div><div><br></div><div>while on Linux 64 the result is:</div><div><br></div><div><div>TranslationUnitDecl 0x9fef870 <<invalid sloc>> <invalid sloc></div><div><skipped></div><div>`-FunctionDecl 0xa046700 <test-imp.cpp:1:1, line:3:1> line:1:6 declToImport 'void (struct __va_list_tag *, ...)'<br></div><div>  |-ParmVarDecl 0xa046600 <col:19, col:37> col:37 used list 'struct __va_list_tag *':'struct __va_list_tag *'</div><div>  `-CompoundStmt 0xa0468c8 <col:48, line:3:1></div><div>    `-CStyleCastExpr 0xa0468a0 <line:2:3, col:35> 'void' <ToVoid></div><div>      `-VAArgExpr 0xa046868 <col:9, col:35> 'int'</div><div>        `-ImplicitCastExpr 0xa046850 <col:26> 'struct __va_list_tag *':'struct __va_list_tag *' <LValueToRValue></div><div>          `-DeclRefExpr 0xa0467f0 <col:26> 'struct __va_list_tag *':'struct __va_list_tag *' lvalue ParmVar 0xa046600 'list' 'struct __va_list_tag *':'struct __va_list_tag *'</div></div><div><br></div><div>Maybe it can help.</div></div><div class="gmail_extra"><br clear="all"><div><div class="gmail_signature" data-smartmail="gmail_signature">Thanks,<br>--Serge<br></div></div>
<br><div class="gmail_quote">2016-07-18 16:33 GMT+06:00 Aleksei Sidorin <span dir="ltr"><<a href="mailto:a.sidorin@samsung.com" target="_blank">a.sidorin@samsung.com</a>></span>:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">a.sidorin added a comment.<br>
<span class=""><br>
> I don't think this small improvement in Importer is worth invasive changes in other components.<br>
<br>
<br>
</span>Thanks, Serge. Is it OK to commit?<br>
<br>
<br>
<a href="https://reviews.llvm.org/D14326" rel="noreferrer" target="_blank">https://reviews.llvm.org/D14326</a><br>
<br>
<br>
<br>
</blockquote></div><br></div>