case CFGElement::AutomaticObjectDtor: {
const VarDecl *var = cast<CFGAutomaticObjDtor>(this)->getVarDecl();
QualType ty = var->getType();
+ ty = ty.getNonReferenceType();
const RecordType *recordType = ty->getAs<RecordType>();
const CXXRecordDecl *classDecl =
- cast<CXXRecordDecl>(recordType->getDecl());
+ cast<CXXRecordDecl>(recordType->getDecl());
return classDecl->getDestructor();
}
case CFGElement::TemporaryDtor: {
// Not yet supported.
return 0;
}
- assert(0 && "getKind() returned bogus value");
+ llvm_unreachable("getKind() returned bogus value");
return 0;
}
}
}
}
+
+// PR9380
+struct PR9380 {
+ ~PR9380();
+};
+struct PR9380_B : public PR9380 {
+ PR9380_B( const PR9380& str );
+};
+void test_PR9380(const PR9380& aKey) {
+ const PR9380& flatKey = PR9380_B(aKey);
+}
+