I agree with David that this seems like a strange place to put this
particular check; this should be checked when we build a function type (per
[class.abstract]p3) rather than when we build a call to the function. Indeed,
we already have such a check, but there is presumably a bug somewhere causing
us to not reach it when declaring a member function.
================
Comment at: lib/Sema/SemaExprCXX.cpp:4949-4954
@@ -4948,1 +4948,8 @@
+ if (!IsDecltype && RD->isAbstract() && !isa<CXXConstructExpr>(E)) {
+ Diag(E->getExprLoc(), diag::err_abstract_type_in_decl)
+ << Sema::AbstractReturnType << RT->desugar();
+ DiagnoseAbstractType(RD);
+ return Owned(E);
+ }
+
----------------
Can you use `RequireNonAbstractType` for this check?
http://llvm-reviews.chandlerc.com/D2514
_______________________________________________
cfe-commits mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits