<div dir="ltr"><div>Hmm, strange. Looking into it! If I do not manage to find the root cause in a few minutes I will revert!<br></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Fri, 9 Aug 2019 at 11:32, Jonas Devlieghere <<a href="mailto:jonas@devlieghere.com">jonas@devlieghere.com</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">I think this is causing a stage2 failure:<br>
<a href="http://green.lab.llvm.org/green/view/LLDB/job/lldb-cmake/124/consoleFull#-95886206949ba4694-19c4-4d7e-bec5-911270d8a58c" rel="noreferrer" target="_blank">http://green.lab.llvm.org/green/view/LLDB/job/lldb-cmake/124/consoleFull#-95886206949ba4694-19c4-4d7e-bec5-911270d8a58c</a><br>
<br>
On Fri, Aug 9, 2019 at 10:41 AM Gabor Horvath via cfe-commits<br>
<<a href="mailto:cfe-commits@lists.llvm.org" target="_blank">cfe-commits@lists.llvm.org</a>> wrote:<br>
><br>
> Author: xazax<br>
> Date: Fri Aug  9 10:42:41 2019<br>
> New Revision: 368459<br>
><br>
> URL: <a href="http://llvm.org/viewvc/llvm-project?rev=368459&view=rev" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project?rev=368459&view=rev</a><br>
> Log:<br>
> Fix a build bot failure and multiple warnings instances for range base for loops<br>
><br>
> Modified:<br>
>     cfe/trunk/lib/Sema/SemaInit.cpp<br>
>     cfe/trunk/test/Sema/warn-lifetime-analysis-nocfg.cpp<br>
><br>
> Modified: cfe/trunk/lib/Sema/SemaInit.cpp<br>
> URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Sema/SemaInit.cpp?rev=368459&r1=368458&r2=368459&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Sema/SemaInit.cpp?rev=368459&r1=368458&r2=368459&view=diff</a><br>
> ==============================================================================<br>
> --- cfe/trunk/lib/Sema/SemaInit.cpp (original)<br>
> +++ cfe/trunk/lib/Sema/SemaInit.cpp Fri Aug  9 10:42:41 2019<br>
> @@ -6616,7 +6616,7 @@ static void handleGslAnnotatedTypes(Indi<br>
>      return;<br>
>    } else if (auto *OCE = dyn_cast<CXXOperatorCallExpr>(Call)) {<br>
>      FunctionDecl *Callee = OCE->getDirectCallee();<br>
> -    if (Callee->isCXXInstanceMember() &&<br>
> +    if (Callee && Callee->isCXXInstanceMember() &&<br>
>          shouldTrackImplicitObjectArg(cast<CXXMethodDecl>(Callee)))<br>
>        VisitPointerArg(Callee, OCE->getArg(0));<br>
>      return;<br>
> @@ -7070,8 +7070,11 @@ static SourceRange nextPathEntryRange(co<br>
>        // supporting lifetime extension.<br>
>        break;<br>
><br>
> -    case IndirectLocalPathEntry::DefaultInit:<br>
>      case IndirectLocalPathEntry::VarInit:<br>
> +      if (cast<VarDecl>(Path[I].D)->isImplicit())<br>
> +        return SourceRange();<br>
> +      LLVM_FALLTHROUGH;<br>
> +    case IndirectLocalPathEntry::DefaultInit:<br>
>        return Path[I].E->getSourceRange();<br>
>      }<br>
>    }<br>
> @@ -7133,7 +7136,7 @@ void Sema::checkInitializerLifetime(cons<br>
>          return false;<br>
>        }<br>
><br>
> -      if (IsGslPtrInitWithGslTempOwner) {<br>
> +      if (IsGslPtrInitWithGslTempOwner && DiagLoc.isValid()) {<br>
>          Diag(DiagLoc, diag::warn_dangling_lifetime_pointer) << DiagRange;<br>
>          return false;<br>
>        }<br>
><br>
> Modified: cfe/trunk/test/Sema/warn-lifetime-analysis-nocfg.cpp<br>
> URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Sema/warn-lifetime-analysis-nocfg.cpp?rev=368459&r1=368458&r2=368459&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Sema/warn-lifetime-analysis-nocfg.cpp?rev=368459&r1=368458&r2=368459&view=diff</a><br>
> ==============================================================================<br>
> --- cfe/trunk/test/Sema/warn-lifetime-analysis-nocfg.cpp (original)<br>
> +++ cfe/trunk/test/Sema/warn-lifetime-analysis-nocfg.cpp Fri Aug  9 10:42:41 2019<br>
> @@ -201,6 +201,13 @@ void danglingReferenceFromTempOwner() {<br>
>  std::vector<int> getTempVec();<br>
>  std::optional<std::vector<int>> getTempOptVec();<br>
><br>
> +void testLoops() {<br>
> +  for (auto i : getTempVec()) // ok<br>
> +    ;<br>
> +  for (auto i : *getTempOptVec()) // expected-warning {{object backing the pointer will be destroyed at the end of the full-expression}}<br>
> +    ;<br>
> +}<br>
> +<br>
>  int &usedToBeFalsePositive(std::vector<int> &v) {<br>
>    std::vector<int>::iterator it = v.begin();<br>
>    int& value = *it;<br>
><br>
><br>
> _______________________________________________<br>
> cfe-commits mailing list<br>
> <a href="mailto:cfe-commits@lists.llvm.org" target="_blank">cfe-commits@lists.llvm.org</a><br>
> <a href="https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits" rel="noreferrer" target="_blank">https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits</a><br>
</blockquote></div></div>