<div dir="ltr">Removed the test in <span style="color:rgb(51,51,51);font-family:Verdana,sans-serif;font-size:10px;line-height:normal;text-align:center;background-color:rgb(238,238,238)">r241882. Benjamin, could you rework?</span><br></div><br><div class="gmail_quote"><div dir="ltr">On Fri, Jul 10, 2015 at 3:37 AM Rafael Espíndola <<a href="mailto:rafael.espindola@gmail.com">rafael.espindola@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">on the bots too:<br>
<br>
<a href="https://urldefense.proofpoint.com/v2/url?u=http-3A__bb.pgr.jp_builders_ninja-2Dx64-2Dmsvc-2DRA-2Dcentos6_builds_13731&d=AwMFaQ&c=8hUWFZcy2Z-Za5rBPlktOQ&r=BSqEv9KvKMW_Ob8SyngJ70KdZISM_ASROnREeq0cCxk&m=ypMywcFRbnRFPnMS9Y-hA_nOqVaHrpVv9L_I-Rzh7_o&s=6X1p0TTry7HMGHE_n5rfgRF5KCTIOsl0PnUavt0Q8zA&e=" rel="noreferrer" target="_blank">http://bb.pgr.jp/builders/ninja-x64-msvc-RA-centos6/builds/13731</a><br>
<br>
On 9 July 2015 at 12:14, Reid Kleckner <<a href="mailto:rnk@google.com" target="_blank">rnk@google.com</a>> wrote:<br>
> The new test fails for me on Windows:<br>
><br>
> Command 6: "D:/src/llvm/build/./bin\c-index-test.EXE"<br>
> "-code-completion-at=D:\src\llvm\tools\clang\test\Index\complete-ctor-inits.cpp:22:10"<br>
> "D:\src\llvm\tools\clang\test\Index\complete-ctor-inits.cpp"<br>
> Command 6 Result: 0<br>
> Command 6 Output:<br>
><br>
><br>
> Command 6 Stderr:<br>
> D:\src\llvm\tools\clang\test\Index\complete-ctor-inits.cpp:29:8: error:<br>
> expected '{'<br>
> Number FIX-ITs = 0<br>
><br>
><br>
> Command 7: "D:/src/llvm/build/./bin\FileCheck.EXE" "-check-prefix=CHECK-CC4"<br>
> "D:\src\llvm\tools\clang\test\Index\complete-ctor-inits.cpp"<br>
> Command 7 Result: 1<br>
> Command 7 Output:<br>
><br>
><br>
> Command 7 Stderr:<br>
> D:\src\llvm\tools\clang\test\Index\complete-ctor-inits.cpp:55:15: error:<br>
> expected string not found in input<br>
> // CHECK-CC4: MemberRef:{TypedText a}{LeftParen (}{Placeholder<br>
> args}{RightParen )} (7)<br>
>               ^<br>
> <stdin>:1:1: note: scanning from here<br>
> Completion contexts:<br>
> ^<br>
><br>
> On Thu, Jul 9, 2015 at 8:31 AM, Benjamin Kramer <<a href="mailto:benny.kra@googlemail.com" target="_blank">benny.kra@googlemail.com</a>><br>
> wrote:<br>
>><br>
>> Author: d0k<br>
>> Date: Thu Jul  9 10:31:10 2015<br>
>> New Revision: 241811<br>
>><br>
>> URL: <a href="https://urldefense.proofpoint.com/v2/url?u=http-3A__llvm.org_viewvc_llvm-2Dproject-3Frev-3D241811-26view-3Drev&d=AwMFaQ&c=8hUWFZcy2Z-Za5rBPlktOQ&r=BSqEv9KvKMW_Ob8SyngJ70KdZISM_ASROnREeq0cCxk&m=ypMywcFRbnRFPnMS9Y-hA_nOqVaHrpVv9L_I-Rzh7_o&s=b42A5_x1wyfUiRzOzRdIBDe7BXv25SJc-OI0pC-tYWY&e=" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project?rev=241811&view=rev</a><br>
>> Log:<br>
>> [CodeCompletion] Don't crash on member inits of templated constructors.<br>
>><br>
>> Also fixes a crash (on invalid) member functions with a colon<br>
>> initializer. PR23948.<br>
>><br>
>> Modified:<br>
>>     cfe/trunk/lib/Sema/SemaCodeComplete.cpp<br>
>>     cfe/trunk/test/Index/complete-ctor-inits.cpp<br>
>><br>
>> Modified: cfe/trunk/lib/Sema/SemaCodeComplete.cpp<br>
>> URL:<br>
>> <a href="https://urldefense.proofpoint.com/v2/url?u=http-3A__llvm.org_viewvc_llvm-2Dproject_cfe_trunk_lib_Sema_SemaCodeComplete.cpp-3Frev-3D241811-26r1-3D241810-26r2-3D241811-26view-3Ddiff&d=AwMFaQ&c=8hUWFZcy2Z-Za5rBPlktOQ&r=BSqEv9KvKMW_Ob8SyngJ70KdZISM_ASROnREeq0cCxk&m=ypMywcFRbnRFPnMS9Y-hA_nOqVaHrpVv9L_I-Rzh7_o&s=2lKlkdE6ojxXgK61jtrr2yfbamG5yyakhMxC1LBzS5s&e=" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Sema/SemaCodeComplete.cpp?rev=241811&r1=241810&r2=241811&view=diff</a><br>
>><br>
>> ==============================================================================<br>
>> --- cfe/trunk/lib/Sema/SemaCodeComplete.cpp (original)<br>
>> +++ cfe/trunk/lib/Sema/SemaCodeComplete.cpp Thu Jul  9 10:31:10 2015<br>
>> @@ -4409,9 +4409,12 @@ void Sema::CodeCompleteOperatorName(Scop<br>
>>  void Sema::CodeCompleteConstructorInitializer(<br>
>>                                Decl *ConstructorD,<br>
>>                                ArrayRef <CXXCtorInitializer *><br>
>> Initializers) {<br>
>> -  PrintingPolicy Policy = getCompletionPrintingPolicy(*this);<br>
>> -  CXXConstructorDecl *Constructor<br>
>> -    = static_cast<CXXConstructorDecl *>(ConstructorD);<br>
>> +  if (!ConstructorD)<br>
>> +    return;<br>
>> +<br>
>> +  AdjustDeclIfTemplate(ConstructorD);<br>
>> +<br>
>> +  CXXConstructorDecl *Constructor =<br>
>> dyn_cast<CXXConstructorDecl>(ConstructorD);<br>
>>    if (!Constructor)<br>
>>      return;<br>
>><br>
>> @@ -4435,6 +4438,7 @@ void Sema::CodeCompleteConstructorInitia<br>
>>    // Add completions for base classes.<br>
>>    CodeCompletionBuilder Builder(Results.getAllocator(),<br>
>>                                  Results.getCodeCompletionTUInfo());<br>
>> +  PrintingPolicy Policy = getCompletionPrintingPolicy(*this);<br>
>>    bool SawLastInitializer = Initializers.empty();<br>
>>    CXXRecordDecl *ClassDecl = Constructor->getParent();<br>
>>    for (const auto &Base : ClassDecl->bases()) {<br>
>><br>
>> Modified: cfe/trunk/test/Index/complete-ctor-inits.cpp<br>
>> URL:<br>
>> <a href="https://urldefense.proofpoint.com/v2/url?u=http-3A__llvm.org_viewvc_llvm-2Dproject_cfe_trunk_test_Index_complete-2Dctor-2Dinits.cpp-3Frev-3D241811-26r1-3D241810-26r2-3D241811-26view-3Ddiff&d=AwMFaQ&c=8hUWFZcy2Z-Za5rBPlktOQ&r=BSqEv9KvKMW_Ob8SyngJ70KdZISM_ASROnREeq0cCxk&m=ypMywcFRbnRFPnMS9Y-hA_nOqVaHrpVv9L_I-Rzh7_o&s=JAdXNmAmGCNvL5li6IvM_BfGkYOR0R1x4pvcwGSbfBM&e=" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Index/complete-ctor-inits.cpp?rev=241811&r1=241810&r2=241811&view=diff</a><br>
>><br>
>> ==============================================================================<br>
>> --- cfe/trunk/test/Index/complete-ctor-inits.cpp (original)<br>
>> +++ cfe/trunk/test/Index/complete-ctor-inits.cpp Thu Jul  9 10:31:10 2015<br>
>> @@ -17,6 +17,18 @@ struct Z : public X<int>, public Y {<br>
>><br>
>>  Z::Z() : ::X<int>(0), Virt(), b(), c() { }<br>
>><br>
>> +struct PR23948 {<br>
>> +  template<class size> PR23948()<br>
>> +        :<br>
>> +  {}<br>
>> +<br>
>> +  template<class size> void invalid()<br>
>> +        :<br>
>> +  {}<br>
>> +<br>
>> +  int a;<br>
>> +};<br>
>> +<br>
>>  // RUN: c-index-test -code-completion-at=%s:18:10 %s | FileCheck<br>
>> -check-prefix=CHECK-CC1 %s<br>
>>  // CHECK-CC1: MemberRef:{TypedText a}{LeftParen (}{Placeholder<br>
>> args}{RightParen )} (35)<br>
>>  // CHECK-CC1: MemberRef:{TypedText b}{LeftParen (}{Placeholder<br>
>> args}{RightParen )} (35)<br>
>> @@ -38,3 +50,7 @@ Z::Z() : ::X<int>(0), Virt(), b(), c() {<br>
>>  // CHECK-CC3: MemberRef:{TypedText c}{LeftParen (}{Placeholder<br>
>> args}{RightParen )} (7)<br>
>>  // CHECK-CC3-NOT: NotImplemented:{TypedText Virt}{LeftParen<br>
>> (}{Placeholder args}{RightParen )}<br>
>>  // CHECK-CC3: NotImplemented:{TypedText Y}{LeftParen (}{Placeholder<br>
>> args}{RightParen )} (35)<br>
>> +<br>
>> +// RUN: c-index-test -code-completion-at=%s:22:10 %s | FileCheck<br>
>> -check-prefix=CHECK-CC4 %s<br>
>> +// CHECK-CC4: MemberRef:{TypedText a}{LeftParen (}{Placeholder<br>
>> args}{RightParen )} (7)<br>
>> +// RUN: c-index-test -code-completion-at=%s:26:10 %s<br>
>><br>
>><br>
>> _______________________________________________<br>
>> cfe-commits mailing list<br>
>> <a href="mailto:cfe-commits@cs.uiuc.edu" target="_blank">cfe-commits@cs.uiuc.edu</a><br>
>> <a href="http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits" rel="noreferrer" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits</a><br>
><br>
><br>
><br>
> _______________________________________________<br>
> cfe-commits mailing list<br>
> <a href="mailto:cfe-commits@cs.uiuc.edu" target="_blank">cfe-commits@cs.uiuc.edu</a><br>
> <a href="http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits" rel="noreferrer" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits</a><br>
><br>
_______________________________________________<br>
cfe-commits mailing list<br>
<a href="mailto:cfe-commits@cs.uiuc.edu" target="_blank">cfe-commits@cs.uiuc.edu</a><br>
<a href="http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits" rel="noreferrer" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits</a><br>
</blockquote></div>