[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