const FunctionType* FT = T->getAs<FunctionType>();
if (!Context.hasSameUnqualifiedType(FT->getResultType(), Context.IntTy)) {
- TypeSourceInfo *TSI = FD->getTypeSourceInfo();
- TypeLoc TL = TSI->getTypeLoc().IgnoreParens();
- const SemaDiagnosticBuilder& D = Diag(FD->getTypeSpecStartLoc(),
- diag::err_main_returns_nonint);
- if (FunctionTypeLoc* PTL = dyn_cast<FunctionTypeLoc>(&TL)) {
- D << FixItHint::CreateReplacement(PTL->getResultLoc().getSourceRange(),
- "int");
- }
+ Diag(FD->getTypeSpecStartLoc(), diag::err_main_returns_nonint);
FD->setInvalidDecl(true);
}
}
-CT<1> main(void); // expected-error{{'main' must return 'int'}}
-
-// typedef CT<1> mainT(void);
-// mainT main; // TODO
-
// extra qualification on member
class C {
int C::foo();