On Mon, Sep 9, 2013 at 2:07 PM, Matt Beaumont-Gay <[email protected]>wrote:

> Author: matthewbg
> Date: Mon Sep  9 16:07:58 2013
> New Revision: 190353
>
> URL: http://llvm.org/viewvc/llvm-project?rev=190353&view=rev
> Log:
> Fix a crash introduced in r189828.
>
> The predicates in CXXRecordDecl which test various properties of special
> members can't be called on incomplete decls.
>
> Modified:
>     cfe/trunk/lib/Analysis/CFG.cpp
>     cfe/trunk/test/Analysis/dtor.cpp
>
> Modified: cfe/trunk/lib/Analysis/CFG.cpp
> URL:
> http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Analysis/CFG.cpp?rev=190353&r1=190352&r2=190353&view=diff
>
> ==============================================================================
> --- cfe/trunk/lib/Analysis/CFG.cpp (original)
> +++ cfe/trunk/lib/Analysis/CFG.cpp Mon Sep  9 16:07:58 2013
> @@ -3133,7 +3133,7 @@ CFGBlock *CFGBuilder::VisitCXXDeleteExpr
>    DTy = DTy.getNonReferenceType();
>    CXXRecordDecl *RD =
> Context->getBaseElementType(DTy)->getAsCXXRecordDecl();
>    if (RD) {
> -    if (!RD->hasTrivialDestructor())
> +    if (RD->isCompleteDefinition() && !RD->hasTrivialDestructor())
>        appendDeleteDtor(Block, RD, DE);
>    }
>
>
> Modified: cfe/trunk/test/Analysis/dtor.cpp
> URL:
> http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Analysis/dtor.cpp?rev=190353&r1=190352&r2=190353&view=diff
>
> ==============================================================================
> --- cfe/trunk/test/Analysis/dtor.cpp (original)
> +++ cfe/trunk/test/Analysis/dtor.cpp Mon Sep  9 16:07:58 2013
> @@ -431,3 +431,8 @@ namespace PseudoDtor {
>      clang_analyzer_eval(true); // expected-warning{{TRUE}}
>    }
>  }
> +
> +namespace Incomplete {
> +  class Foo; // expected-note{{forward declaration}}
> +  void f(Foo *foo) { delete foo; } // expected-warning{{deleting pointer
> to incomplete type}}
> +}
>
>
Is this the same as PR17162?

-Eli
_______________________________________________
cfe-commits mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits

Reply via email to