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

Reply via email to