本文整理汇总了C++中ASTContext::getDiagnostics方法的典型用法代码示例。如果您正苦于以下问题:C++ ASTContext::getDiagnostics方法的具体用法?C++ ASTContext::getDiagnostics怎么用?C++ ASTContext::getDiagnostics使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ASTContext
的用法示例。
在下文中一共展示了ASTContext::getDiagnostics方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: HandleTranslationUnit
void RemoveTrivialBaseTemplate::HandleTranslationUnit(ASTContext &Ctx)
{
if (TransformationManager::isCLangOpt() ||
TransformationManager::isOpenCLLangOpt()) {
ValidInstanceNum = 0;
}
else {
CollectionVisitor->TraverseDecl(Ctx.getTranslationUnitDecl());
}
if (QueryInstanceOnly)
return;
if (TransformationCounter > ValidInstanceNum) {
TransError = TransMaxInstanceError;
return;
}
TransAssert(TheDerivedClass && "TheDerivedClass is NULL!");
Ctx.getDiagnostics().setSuppressAllDiagnostics(false);
removeBaseSpecifier();
if (Ctx.getDiagnostics().hasErrorOccurred() ||
Ctx.getDiagnostics().hasFatalErrorOccurred())
TransError = TransInternalError;
}
示例2: HandleTranslationUnit
void EmptyStructToInt::HandleTranslationUnit(ASTContext &Ctx)
{
CollectionVisitor->TraverseDecl(Ctx.getTranslationUnitDecl());
doAnalysis();
if (QueryInstanceOnly)
return;
if (TransformationCounter > ValidInstanceNum) {
TransError = TransMaxInstanceError;
return;
}
Ctx.getDiagnostics().setSuppressAllDiagnostics(false);
removeRecordDecls();
RewriteVisitor->TraverseDecl(Ctx.getTranslationUnitDecl());
// sanity check that we actually
// have done some text modifications.
// It could be false due to invalid code being transformed.
if (!Rewritten) {
TransError = TransNoTextModificationError;
return;
}
if (Ctx.getDiagnostics().hasErrorOccurred() ||
Ctx.getDiagnostics().hasFatalErrorOccurred())
TransError = TransInternalError;
}
示例3: HandleTranslationUnit
void TemplateNonTypeArgToInt::HandleTranslationUnit(ASTContext &Ctx)
{
if (TransformationManager::isCLangOpt() ||
TransformationManager::isOpenCLLangOpt()) {
ValidInstanceNum = 0;
}
else {
ArgCollector->TraverseDecl(Ctx.getTranslationUnitDecl());
CollectionVisitor->TraverseDecl(Ctx.getTranslationUnitDecl());
}
if (QueryInstanceOnly)
return;
if (TransformationCounter > ValidInstanceNum) {
TransError = TransMaxInstanceError;
return;
}
Ctx.getDiagnostics().setSuppressAllDiagnostics(false);
if (TheExpr) {
RewriteHelper->replaceExpr(TheExpr, IntString);
}
else if (TheValueDecl) {
RewriteHelper->replaceValueDecl(TheValueDecl,
"int " + TheValueDecl->getNameAsString());
}
else {
TransAssert(0 && "No valid targets!");
}
if (Ctx.getDiagnostics().hasErrorOccurred() ||
Ctx.getDiagnostics().hasFatalErrorOccurred())
TransError = TransInternalError;
}
示例4: HandleTranslationUnit
void ReducePointerLevel::HandleTranslationUnit(ASTContext &Ctx)
{
CollectionVisitor->TraverseDecl(Ctx.getTranslationUnitDecl());
doAnalysis();
if (QueryInstanceOnly)
return;
if (TransformationCounter > ValidInstanceNum) {
TransError = TransMaxInstanceError;
return;
}
TransAssert(CollectionVisitor && "NULL CollectionVisitor!");
TransAssert(RewriteVisitor && "NULL CollectionVisitor!");
Ctx.getDiagnostics().setSuppressAllDiagnostics(false);
TransAssert(TheDecl && "NULL TheDecl!");
setRecordDecl();
RewriteVisitor->TraverseDecl(Ctx.getTranslationUnitDecl());
if (Ctx.getDiagnostics().hasErrorOccurred() ||
Ctx.getDiagnostics().hasFatalErrorOccurred())
TransError = TransInternalError;
}
示例5: HandleTranslationUnit
void BinOpSimplification::HandleTranslationUnit(ASTContext &Ctx)
{
if (QueryInstanceOnly)
return;
if (TransformationCounter > ValidInstanceNum) {
TransError = TransMaxInstanceError;
return;
}
Ctx.getDiagnostics().setSuppressAllDiagnostics(false);
TransAssert(TheFuncDecl && "NULL TheFuncDecl!");
TransAssert(TheStmt && "NULL TheStmt!");
TransAssert(TheBinOp && "NULL TheBinOp");
NameQueryWrap->TraverseDecl(Ctx.getTranslationUnitDecl());
addNewTmpVariable();
addNewAssignStmt();
replaceBinOp();
if (Ctx.getDiagnostics().hasErrorOccurred() ||
Ctx.getDiagnostics().hasFatalErrorOccurred())
TransError = TransInternalError;
}
示例6: HandleTranslationUnit
void LocalToGlobal::HandleTranslationUnit(ASTContext &Ctx)
{
if (TransformationManager::isOpenCLLangOpt()) {
ValidInstanceNum = 0;
}
else {
FunctionVisitor->TraverseDecl(Ctx.getTranslationUnitDecl());
}
if (QueryInstanceOnly)
return;
if (TransformationCounter > ValidInstanceNum) {
TransError = TransMaxInstanceError;
return;
}
TransAssert(TransformationASTVisitor && "NULL TransformationASTVisitor!");
Ctx.getDiagnostics().setSuppressAllDiagnostics(false);
TransAssert(TheFuncDecl && "NULL TheFuncDecl!");
TransAssert(TheVarDecl && "NULL TheVarDecl!");
TransformationASTVisitor->TraverseDecl(Ctx.getTranslationUnitDecl());
if (Ctx.getDiagnostics().hasErrorOccurred() ||
Ctx.getDiagnostics().hasFatalErrorOccurred())
TransError = TransInternalError;
}
示例7: HandleTranslationUnit
void TemplateArgToInt::HandleTranslationUnit(ASTContext &Ctx)
{
const LangOptions &LO = Ctx.getLangOpts();
if (LO.C99 || LO.OpenCL) {
ValidInstanceNum = 0;
}
else {
CollectionVisitor->TraverseDecl(Ctx.getTranslationUnitDecl());
GlobalParamFilter->TraverseDecl(Ctx.getTranslationUnitDecl());
ArgCollector->TraverseDecl(Ctx.getTranslationUnitDecl());
}
if (QueryInstanceOnly)
return;
if (TransformationCounter > ValidInstanceNum) {
TransError = TransMaxInstanceError;
return;
}
Ctx.getDiagnostics().setSuppressAllDiagnostics(false);
rewriteTemplateArgument();
if (Ctx.getDiagnostics().hasErrorOccurred() ||
Ctx.getDiagnostics().hasFatalErrorOccurred())
TransError = TransInternalError;
}
示例8: HandleTranslationUnit
void ObjCMigrateASTConsumer::HandleTranslationUnit(ASTContext &Ctx) {
Rewriter rewriter(Ctx.getSourceManager(), Ctx.getLangOpts());
RewritesReceiver Rec(rewriter);
Editor->applyRewrites(Rec);
for (Rewriter::buffer_iterator
I = rewriter.buffer_begin(), E = rewriter.buffer_end(); I != E; ++I) {
FileID FID = I->first;
RewriteBuffer &buf = I->second;
const FileEntry *file = Ctx.getSourceManager().getFileEntryForID(FID);
assert(file);
llvm::SmallString<512> newText;
llvm::raw_svector_ostream vecOS(newText);
buf.write(vecOS);
vecOS.flush();
llvm::MemoryBuffer *memBuf = llvm::MemoryBuffer::getMemBufferCopy(
StringRef(newText.data(), newText.size()), file->getName());
llvm::SmallString<64> filePath(file->getName());
FileMgr.FixupRelativePath(filePath);
Remapper.remap(filePath.str(), memBuf);
}
if (IsOutputFile) {
Remapper.flushToFile(MigrateDir, Ctx.getDiagnostics());
} else {
Remapper.flushToDisk(MigrateDir, Ctx.getDiagnostics());
}
}
示例9: HandleTranslationUnit
void LiftAssignmentExpr::HandleTranslationUnit(ASTContext &Ctx)
{
if (QueryInstanceOnly)
return;
if (TransformationCounter > ValidInstanceNum) {
TransError = TransMaxInstanceError;
return;
}
Ctx.getDiagnostics().setSuppressAllDiagnostics(false);
TransAssert(TheFuncDecl && "NULL TheFuncDecl!");
TransAssert(TheStmt && "NULL TheStmt!");
TransAssert(TheAssignExpr && "NULL TheAssignExpr");
TransAssert(TheAssignExpr->isAssignmentOp() ||
TheAssignExpr->isCompoundAssignmentOp());
addNewAssignStmt();
replaceAssignExpr();
if (Ctx.getDiagnostics().hasErrorOccurred() ||
Ctx.getDiagnostics().hasFatalErrorOccurred())
TransError = TransInternalError;
}
示例10: HandleTranslationUnit
void RemoveCtorInitializer::HandleTranslationUnit(ASTContext &Ctx)
{
if (TransformationManager::isCLangOpt() ||
TransformationManager::isOpenCLLangOpt()) {
ValidInstanceNum = 0;
}
else {
CollectionVisitor->TraverseDecl(Ctx.getTranslationUnitDecl());
}
if (QueryInstanceOnly)
return;
if (TransformationCounter > ValidInstanceNum) {
TransError = TransMaxInstanceError;
return;
}
TransAssert(TheCtorDecl && "TheCtorDecl is NULL!");
TransAssert(TheInitializer && "TheInitializer is NULL!");
Ctx.getDiagnostics().setSuppressAllDiagnostics(false);
RewriteHelper->removeCXXCtorInitializer(TheInitializer, TheIndex,
getNumCtorWrittenInitializers(*TheCtorDecl));
if (Ctx.getDiagnostics().hasErrorOccurred() ||
Ctx.getDiagnostics().hasFatalErrorOccurred())
TransError = TransInternalError;
}
示例11: HandleTranslationUnit
void RemoveUnusedFunction::HandleTranslationUnit(ASTContext &Ctx)
{
VisitorWrapper->TraverseDecl(Ctx.getTranslationUnitDecl());
// visit using decls declared outsided function-scope
UsingDeclVisitor Visitor(NULL, this);
Visitor.TraverseDecl(Ctx.getTranslationUnitDecl());
SpecializationVisitor SpecVisitor(this);
SpecVisitor.TraverseDecl(Ctx.getTranslationUnitDecl());
AnalysisVisitor->TraverseDecl(Ctx.getTranslationUnitDecl());
if (QueryInstanceOnly)
return;
if (TransformationCounter > ValidInstanceNum) {
TransError = TransMaxInstanceError;
return;
}
if (ToCounter > ValidInstanceNum) {
TransError = TransToCounterTooBigError;
return;
}
Ctx.getDiagnostics().setSuppressAllDiagnostics(false);
doRewriting();
if (Ctx.getDiagnostics().hasErrorOccurred() ||
Ctx.getDiagnostics().hasFatalErrorOccurred())
TransError = TransInternalError;
}
示例12: HandleTranslationUnit
void RemoveDecl::HandleTranslationUnit(ASTContext &Ctx)
{
auto CollectionVisitor = RemoveDeclVisitor(this);
CollectionVisitor.TraverseDecl(Ctx.getTranslationUnitDecl());
if (QueryInstanceOnly)
return;
if (TransformationCounter > ValidInstanceNum) {
TransError = TransMaxInstanceError;
return;
}
Ctx.getDiagnostics().setSuppressAllDiagnostics(false);
TransAssert(Decls.size() && "NULL TheDecl!");
Decl* D = nullptr;
if (ToCounter < TransformationCounter) {
D = Decls[TransformationCounter-1];
RewriteHelper->removeDecl(D);
//std::string s;
//auto R = D->getSourceRange();
//RewriteHelper->getStringBetweenLocs(s, R.getBegin(), R.getEnd());
}
else {
for (int i = ToCounter; i >= TransformationCounter; --i) {
D = Decls[i];
RewriteHelper->removeDecl(D);
}
}
if (Ctx.getDiagnostics().hasErrorOccurred() ||
Ctx.getDiagnostics().hasFatalErrorOccurred())
TransError = TransInternalError;
}
示例13: HandleTranslationUnit
void ReplaceSimpleTypedef::HandleTranslationUnit(ASTContext &Ctx)
{
CollectionVisitor->TraverseDecl(Ctx.getTranslationUnitDecl());
if (QueryInstanceOnly)
return;
if (TransformationCounter > ValidInstanceNum) {
TransError = TransMaxInstanceError;
return;
}
Ctx.getDiagnostics().setSuppressAllDiagnostics(false);
TransAssert(TheTypedefDecl && "NULL TheTypedefDecl!");
RewriteVisitor->TraverseDecl(Ctx.getTranslationUnitDecl());
removeTypedefs();
if (!Rewritten) {
TransError = TransNoTextModificationError;
return;
}
if (Ctx.getDiagnostics().hasErrorOccurred() ||
Ctx.getDiagnostics().hasFatalErrorOccurred())
TransError = TransInternalError;
}
示例14: HandleTranslationUnit
void RemoveUnusedOuterClass::HandleTranslationUnit(ASTContext &Ctx)
{
const LangOptions &LO = Ctx.getLangOpts();
if (LO.C99 || LO.OpenCL) {
ValidInstanceNum = 0;
}
else {
CollectionVisitor->TraverseDecl(Ctx.getTranslationUnitDecl());
analyzeCXXRDSet();
}
if (QueryInstanceOnly)
return;
if (TransformationCounter > ValidInstanceNum) {
TransError = TransMaxInstanceError;
return;
}
Ctx.getDiagnostics().setSuppressAllDiagnostics(false);
removeOuterClass();
if (Ctx.getDiagnostics().hasErrorOccurred() ||
Ctx.getDiagnostics().hasFatalErrorOccurred())
TransError = TransInternalError;
}
示例15: HandleTranslationUnit
void SimpleInliner::HandleTranslationUnit(ASTContext &Ctx)
{
doAnalysis();
if (QueryInstanceOnly)
return;
if (TransformationCounter > ValidInstanceNum) {
TransError = TransMaxInstanceError;
return;
}
TransAssert(CurrentFD && "NULL CurrentFD!");
TransAssert(TheCallExpr && "NULL TheCallExpr!");
Ctx.getDiagnostics().setSuppressAllDiagnostics(false);
NameQueryWrap->TraverseDecl(Ctx.getTranslationUnitDecl());
NamePostfix = NameQueryWrap->getMaxNamePostfix() + 1;
FunctionVisitor->TraverseDecl(CurrentFD);
StmtVisitor->TraverseDecl(TheCaller);
TransAssert(TheStmt && "NULL TheStmt!");
replaceCallExpr();
if (Ctx.getDiagnostics().hasErrorOccurred() ||
Ctx.getDiagnostics().hasFatalErrorOccurred())
TransError = TransInternalError;
}