[cfe-commits] [patch] Be a bit more consistent in using operator->
Rafael Espindola
espindola at google.com
Sun Mar 28 20:21:47 PDT 2010
I think that is part of what you asked for in the patch of PR3782.
Cheers,
--
Rafael Ávila de Espíndola
-------------- next part --------------
diff --git a/include/clang/AST/Type.h b/include/clang/AST/Type.h
index f59456e..e9368e8 100644
--- a/include/clang/AST/Type.h
+++ b/include/clang/AST/Type.h
@@ -678,14 +678,6 @@ public:
return getObjCGCAttr() == Qualifiers::Strong;
}
- /// getNoReturnAttr - Returns true if the type has the noreturn attribute,
- /// false otherwise.
- bool getNoReturnAttr() const;
-
- /// getCallConv - Returns the calling convention of the type if the type
- /// is a function type, CC_Default otherwise.
- CallingConv getCallConv() const;
-
private:
// These methods are implemented in a separate translation unit;
// "static"-ize them to avoid creating temporary QualTypes in the
@@ -946,6 +938,14 @@ public:
/// pointer, this returns the respective pointee.
QualType getPointeeType() const;
+ /// getNoReturnAttr - Returns true if the type has the noreturn attribute,
+ /// false otherwise.
+ bool getNoReturnAttr() const;
+
+ /// getCallConv - Returns the calling convention of the type if the type
+ /// is a function type, CC_Default otherwise.
+ CallingConv getCallConv() const;
+
/// getUnqualifiedDesugaredType() - Return the specified type with
/// any "sugar" removed from the type, removing any typedefs,
/// typeofs, etc., as well as any qualifiers.
@@ -2938,12 +2938,11 @@ inline Qualifiers::GC QualType::getObjCGCAttr() const {
/// getNoReturnAttr - Returns true if the type has the noreturn attribute,
/// false otherwise.
-inline bool QualType::getNoReturnAttr() const {
- QualType CT = getTypePtr()->getCanonicalTypeInternal();
- if (const PointerType *PT = getTypePtr()->getAs<PointerType>()) {
+inline bool Type::getNoReturnAttr() const {
+ if (const PointerType *PT = getAs<PointerType>()) {
if (const FunctionType *FT = PT->getPointeeType()->getAs<FunctionType>())
return FT->getNoReturnAttr();
- } else if (const FunctionType *FT = getTypePtr()->getAs<FunctionType>())
+ } else if (const FunctionType *FT = getAs<FunctionType>())
return FT->getNoReturnAttr();
return false;
@@ -2951,19 +2950,19 @@ inline bool QualType::getNoReturnAttr() const {
/// getCallConv - Returns the calling convention of the type if the type
/// is a function type, CC_Default otherwise.
-inline CallingConv QualType::getCallConv() const {
- if (const PointerType *PT = getTypePtr()->getAs<PointerType>())
- return PT->getPointeeType().getCallConv();
- else if (const ReferenceType *RT = getTypePtr()->getAs<ReferenceType>())
- return RT->getPointeeType().getCallConv();
+inline CallingConv Type::getCallConv() const {
+ if (const PointerType *PT = getAs<PointerType>())
+ return PT->getPointeeType()->getCallConv();
+ else if (const ReferenceType *RT = getAs<ReferenceType>())
+ return RT->getPointeeType()->getCallConv();
else if (const MemberPointerType *MPT =
- getTypePtr()->getAs<MemberPointerType>())
- return MPT->getPointeeType().getCallConv();
+ getAs<MemberPointerType>())
+ return MPT->getPointeeType()->getCallConv();
else if (const BlockPointerType *BPT =
- getTypePtr()->getAs<BlockPointerType>()) {
+ getAs<BlockPointerType>()) {
if (const FunctionType *FT = BPT->getPointeeType()->getAs<FunctionType>())
return FT->getCallConv();
- } else if (const FunctionType *FT = getTypePtr()->getAs<FunctionType>())
+ } else if (const FunctionType *FT = getAs<FunctionType>())
return FT->getCallConv();
return CC_Default;
diff --git a/lib/AST/ASTContext.cpp b/lib/AST/ASTContext.cpp
index 7f2e35b..f8f626a 100644
--- a/lib/AST/ASTContext.cpp
+++ b/lib/AST/ASTContext.cpp
@@ -1144,11 +1144,11 @@ static QualType getNoReturnCallConvType(ASTContext& Context, QualType T,
}
QualType ASTContext::getNoReturnType(QualType T, bool AddNoReturn) {
- return getNoReturnCallConvType(*this, T, AddNoReturn, T.getCallConv());
+ return getNoReturnCallConvType(*this, T, AddNoReturn, T->getCallConv());
}
QualType ASTContext::getCallConvType(QualType T, CallingConv CallConv) {
- return getNoReturnCallConvType(*this, T, T.getNoReturnAttr(), CallConv);
+ return getNoReturnCallConvType(*this, T, T->getNoReturnAttr(), CallConv);
}
/// getComplexType - Return the uniqued reference to the type for a complex
diff --git a/lib/Analysis/CFG.cpp b/lib/Analysis/CFG.cpp
index a4a021f..e93ddb3 100644
--- a/lib/Analysis/CFG.cpp
+++ b/lib/Analysis/CFG.cpp
@@ -571,7 +571,7 @@ static bool CanThrow(Expr *E) {
CFGBlock *CFGBuilder::VisitCallExpr(CallExpr *C, AddStmtChoice asc) {
// If this is a call to a no-return function, this stops the block here.
bool NoReturn = false;
- if (C->getCallee()->getType().getNoReturnAttr()) {
+ if (C->getCallee()->getType()->getNoReturnAttr()) {
NoReturn = true;
}
diff --git a/lib/Checker/NoReturnFunctionChecker.cpp b/lib/Checker/NoReturnFunctionChecker.cpp
index 80fea99..1a902dc 100644
--- a/lib/Checker/NoReturnFunctionChecker.cpp
+++ b/lib/Checker/NoReturnFunctionChecker.cpp
@@ -37,7 +37,7 @@ void NoReturnFunctionChecker::PostVisitCallExpr(CheckerContext &C,
const GRState *state = C.getState();
const Expr *Callee = CE->getCallee();
- bool BuildSinks = Callee->getType().getNoReturnAttr();
+ bool BuildSinks = Callee->getType()->getNoReturnAttr();
if (!BuildSinks) {
SVal L = state->getSVal(Callee);
diff --git a/lib/Sema/AnalysisBasedWarnings.cpp b/lib/Sema/AnalysisBasedWarnings.cpp
index 45b08db..8b79e03 100644
--- a/lib/Sema/AnalysisBasedWarnings.cpp
+++ b/lib/Sema/AnalysisBasedWarnings.cpp
@@ -154,7 +154,7 @@ static ControlFlowKind CheckFallThrough(AnalysisContext &AC) {
continue;
}
Expr *CEE = C->getCallee()->IgnoreParenCasts();
- if (CEE->getType().getNoReturnAttr()) {
+ if (CEE->getType()->getNoReturnAttr()) {
NoReturnEdge = true;
HasFakeEdge = true;
} else if (DeclRefExpr *DRE = dyn_cast<DeclRefExpr>(CEE)) {
More information about the cfe-commits
mailing list