r308722 - Fixed failing assert in code completion.
Alex L via cfe-commits
cfe-commits at lists.llvm.org
Tue Aug 8 05:20:55 PDT 2017
Ping?
On 21 July 2017 at 10:44, Alex L <arphaman at gmail.com> wrote:
> Hans, can you please merge this to the LLVM 5.0 branch?
>
> AFAIK It's a recent regression that should get fixed in LLVM 5.0.
>
> Cheers,
> Alex
>
>
> On 21 July 2017 at 10:24, Ilya Biryukov via cfe-commits <
> cfe-commits at lists.llvm.org> wrote:
>
>> Author: ibiryukov
>> Date: Fri Jul 21 02:24:00 2017
>> New Revision: 308722
>>
>> URL: http://llvm.org/viewvc/llvm-project?rev=308722&view=rev
>> Log:
>> Fixed failing assert in code completion.
>>
>> Summary:
>> The code was accessing uninstantiated default argument.
>> This resulted in failing assertion at ParmVarDecl::getDefaultArg().
>>
>> Reviewers: erikjv, klimek, bkramer, krasimir
>>
>> Reviewed By: krasimir
>>
>> Subscribers: cfe-commits
>>
>> Differential Revision: https://reviews.llvm.org/D35682
>>
>> Added:
>> cfe/trunk/test/CodeCompletion/uninstantiated_params.cpp
>> Modified:
>> cfe/trunk/lib/Sema/SemaCodeComplete.cpp
>>
>> Modified: cfe/trunk/lib/Sema/SemaCodeComplete.cpp
>> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Sema/SemaC
>> odeComplete.cpp?rev=308722&r1=308721&r2=308722&view=diff
>> ============================================================
>> ==================
>> --- cfe/trunk/lib/Sema/SemaCodeComplete.cpp (original)
>> +++ cfe/trunk/lib/Sema/SemaCodeComplete.cpp Fri Jul 21 02:24:00 2017
>> @@ -2401,10 +2401,7 @@ formatBlockPlaceholder(const PrintingPol
>> static std::string GetDefaultValueString(const ParmVarDecl *Param,
>> const SourceManager &SM,
>> const LangOptions &LangOpts) {
>> - const Expr *defaultArg = Param->getDefaultArg();
>> - if (!defaultArg)
>> - return "";
>> - const SourceRange SrcRange = defaultArg->getSourceRange();
>> + const SourceRange SrcRange = Param->getDefaultArgRange();
>> CharSourceRange CharSrcRange = CharSourceRange::getTokenRange
>> (SrcRange);
>> bool Invalid = CharSrcRange.isInvalid();
>> if (Invalid)
>>
>> Added: cfe/trunk/test/CodeCompletion/uninstantiated_params.cpp
>> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeCompl
>> etion/uninstantiated_params.cpp?rev=308722&view=auto
>> ============================================================
>> ==================
>> --- cfe/trunk/test/CodeCompletion/uninstantiated_params.cpp (added)
>> +++ cfe/trunk/test/CodeCompletion/uninstantiated_params.cpp Fri Jul 21
>> 02:24:00 2017
>> @@ -0,0 +1,13 @@
>> +template <class T>
>> +struct unique_ptr {
>> + typedef T* pointer;
>> +
>> + void reset(pointer ptr = pointer());
>> +};
>> +
>> +void test() {
>> + unique_ptr<int> x;
>> + x.
>> + // RUN: %clang_cc1 -fsyntax-only -code-completion-at=%s:10:5 %s -o - |
>> FileCheck -check-prefix=CHECK-CC1 %s
>> + // CHECK-CC1: [#void#]reset({#<#unique_ptr<int>::pointer ptr =
>> pointer()#>#})
>> +}
>>
>>
>> _______________________________________________
>> cfe-commits mailing list
>> cfe-commits at lists.llvm.org
>> http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
>>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20170808/51a142e8/attachment.html>
More information about the cfe-commits
mailing list