[cfe-commits] r160815 - in /cfe/trunk: include/clang/StaticAnalyzer/Core/PathSensitive/ lib/StaticAnalyzer/Checkers/ lib/StaticAnalyzer/Core/

Jordan Rose jordan_rose at apple.com
Thu Jul 26 14:39:41 PDT 2012


Author: jrose
Date: Thu Jul 26 16:39:41 2012
New Revision: 160815

URL: http://llvm.org/viewvc/llvm-project?rev=160815&view=rev
Log:
[analyzer] Rename Calls.{h,cpp} to CallEvent.{h,cpp}. No functionality change.

Added:
    cfe/trunk/include/clang/StaticAnalyzer/Core/PathSensitive/CallEvent.h
      - copied, changed from r160810, cfe/trunk/include/clang/StaticAnalyzer/Core/PathSensitive/Calls.h
    cfe/trunk/lib/StaticAnalyzer/Core/CallEvent.cpp
      - copied, changed from r160810, cfe/trunk/lib/StaticAnalyzer/Core/Calls.cpp
Removed:
    cfe/trunk/include/clang/StaticAnalyzer/Core/PathSensitive/Calls.h
    cfe/trunk/lib/StaticAnalyzer/Core/Calls.cpp
Modified:
    cfe/trunk/lib/StaticAnalyzer/Checkers/AttrNonNullChecker.cpp
    cfe/trunk/lib/StaticAnalyzer/Checkers/BasicObjCFoundationChecks.cpp
    cfe/trunk/lib/StaticAnalyzer/Checkers/CallAndMessageChecker.cpp
    cfe/trunk/lib/StaticAnalyzer/Checkers/MallocChecker.cpp
    cfe/trunk/lib/StaticAnalyzer/Checkers/NSAutoreleasePoolChecker.cpp
    cfe/trunk/lib/StaticAnalyzer/Checkers/NoReturnFunctionChecker.cpp
    cfe/trunk/lib/StaticAnalyzer/Checkers/ObjCSelfInitChecker.cpp
    cfe/trunk/lib/StaticAnalyzer/Checkers/RetainCountChecker.cpp
    cfe/trunk/lib/StaticAnalyzer/Checkers/TraversalChecker.cpp
    cfe/trunk/lib/StaticAnalyzer/Core/CMakeLists.txt
    cfe/trunk/lib/StaticAnalyzer/Core/CheckerManager.cpp
    cfe/trunk/lib/StaticAnalyzer/Core/ExplodedGraph.cpp
    cfe/trunk/lib/StaticAnalyzer/Core/ExprEngine.cpp
    cfe/trunk/lib/StaticAnalyzer/Core/ExprEngineCXX.cpp
    cfe/trunk/lib/StaticAnalyzer/Core/ExprEngineCallAndReturn.cpp
    cfe/trunk/lib/StaticAnalyzer/Core/ExprEngineObjC.cpp
    cfe/trunk/lib/StaticAnalyzer/Core/RegionStore.cpp
    cfe/trunk/lib/StaticAnalyzer/Core/Store.cpp

Copied: cfe/trunk/include/clang/StaticAnalyzer/Core/PathSensitive/CallEvent.h (from r160810, cfe/trunk/include/clang/StaticAnalyzer/Core/PathSensitive/Calls.h)
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/StaticAnalyzer/Core/PathSensitive/CallEvent.h?p2=cfe/trunk/include/clang/StaticAnalyzer/Core/PathSensitive/CallEvent.h&p1=cfe/trunk/include/clang/StaticAnalyzer/Core/PathSensitive/Calls.h&r1=160810&r2=160815&rev=160815&view=diff
==============================================================================
--- cfe/trunk/include/clang/StaticAnalyzer/Core/PathSensitive/Calls.h (original)
+++ cfe/trunk/include/clang/StaticAnalyzer/Core/PathSensitive/CallEvent.h Thu Jul 26 16:39:41 2012
@@ -1,4 +1,4 @@
-//===- Calls.h - Wrapper for all function and method calls --------*- C++ -*--//
+//===- CallEvent.h - Wrapper for all function and method calls ----*- C++ -*--//
 //
 //                     The LLVM Compiler Infrastructure
 //

Removed: cfe/trunk/include/clang/StaticAnalyzer/Core/PathSensitive/Calls.h
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/StaticAnalyzer/Core/PathSensitive/Calls.h?rev=160814&view=auto
==============================================================================
--- cfe/trunk/include/clang/StaticAnalyzer/Core/PathSensitive/Calls.h (original)
+++ cfe/trunk/include/clang/StaticAnalyzer/Core/PathSensitive/Calls.h (removed)
@@ -1,821 +0,0 @@
-//===- Calls.h - Wrapper for all function and method calls --------*- C++ -*--//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-/// \file This file defines CallEvent and its subclasses, which represent path-
-/// sensitive instances of different kinds of function and method calls
-/// (C, C++, and Objective-C).
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef LLVM_CLANG_STATICANALYZER_PATHSENSITIVE_CALL
-#define LLVM_CLANG_STATICANALYZER_PATHSENSITIVE_CALL
-
-#include "clang/Basic/SourceManager.h"
-#include "clang/AST/DeclCXX.h"
-#include "clang/AST/ExprCXX.h"
-#include "clang/AST/ExprObjC.h"
-#include "clang/StaticAnalyzer/Core/PathSensitive/ProgramState.h"
-#include "clang/StaticAnalyzer/Core/PathSensitive/SVals.h"
-#include "llvm/ADT/PointerIntPair.h"
-
-namespace clang {
-class ProgramPoint;
-class ProgramPointTag;
-
-namespace ento {
-
-enum CallEventKind {
-  CE_Function,
-  CE_CXXMember,
-  CE_CXXMemberOperator,
-  CE_BEG_CXX_INSTANCE_CALLS = CE_CXXMember,
-  CE_END_CXX_INSTANCE_CALLS = CE_CXXMemberOperator,
-  CE_Block,
-  CE_BEG_SIMPLE_CALLS = CE_Function,
-  CE_END_SIMPLE_CALLS = CE_Block,
-  CE_CXXConstructor,
-  CE_CXXDestructor,
-  CE_CXXAllocator,
-  CE_BEG_FUNCTION_CALLS = CE_Function,
-  CE_END_FUNCTION_CALLS = CE_CXXAllocator,
-  CE_ObjCMessage
-};
-
-
-/// \brief Represents an abstract call to a function or method along a
-/// particular path.
-class CallEvent {
-public:
-  typedef CallEventKind Kind;
-
-private:
-  // PointerIntPair doesn't respect IntrusiveRefCntPtr, so we have to manually
-  // retain and release the state.
-  llvm::PointerIntPair<const ProgramState *, 2> State;
-  llvm::PointerIntPair<const LocationContext *, 2> LCtx;
-  llvm::PointerUnion<const Expr *, const Decl *> Origin;
-
-protected:
-  // This is user data for subclasses.
-  const void *Data;
-  SourceLocation Location;
-
-  CallEvent(const Expr *E, ProgramStateRef state, const LocationContext *lctx,
-            Kind k)
-    : State(state.getPtr(), (k & 0x3)),
-      LCtx(lctx, ((k >> 2) & 0x3)),
-      Origin(E) {
-    IntrusiveRefCntPtrInfo<const ProgramState>::retain(getState());
-    assert(k == getKind() && "More kinds than bits in the PointerIntPairs.");
-  }
-
-  CallEvent(const Decl *D, ProgramStateRef state, const LocationContext *lctx,
-            Kind k)
-    : State(state.getPtr(), (k & 0x3)),
-      LCtx(lctx, ((k >> 2) & 0x3)),
-      Origin(D) {
-    IntrusiveRefCntPtrInfo<const ProgramState>::retain(getState());
-    assert(k == getKind() && "More kinds than bits in the PointerIntPairs.");
-  }
-
-  const ProgramState *getState() const {
-    return State.getPointer();
-  }
-
-  const LocationContext *getLocationContext() const {
-    return LCtx.getPointer();
-  }
-
-  ~CallEvent() {
-    IntrusiveRefCntPtrInfo<const ProgramState>::release(getState());
-  }
-
-
-  /// \brief Get the value of arbitrary expressions at this point in the path.
-  SVal getSVal(const Stmt *S) const {
-    return getState()->getSVal(S, getLocationContext());
-  }
-
-  typedef SmallVectorImpl<const MemRegion *> RegionList;
-
-  /// \brief Used to specify non-argument regions that will be invalidated as a
-  /// result of this call.
-  void getExtraInvalidatedRegions(RegionList &Regions) const;
-
-  QualType getDeclaredResultType() const;
-
-public:
-  /// \brief Returns the kind of call this is.
-  Kind getKind() const {
-    return static_cast<Kind>((State.getInt()) | (LCtx.getInt() << 2));
-  }
-
-  /// \brief Returns the declaration of the function or method that will be
-  /// called. May be null.
-  const Decl *getDecl() const;
-
-  /// \brief Returns the definition of the function or method that will be
-  /// called. Returns NULL if the definition cannot be found; ex: due to
-  /// dynamic dispatch in ObjC methods.
-  const Decl *getRuntimeDefinition() const;
-
-  /// \brief Returns the expression whose value will be the result of this call.
-  /// May be null.
-  const Expr *getOriginExpr() const {
-    return Origin.dyn_cast<const Expr *>();
-  }
-
-  /// \brief Returns the number of arguments (explicit and implicit).
-  ///
-  /// Note that this may be greater than the number of parameters in the
-  /// callee's declaration, and that it may include arguments not written in
-  /// the source.
-  unsigned getNumArgs() const;
-
-  /// \brief Returns true if the callee is known to be from a system header.
-  bool isInSystemHeader() const {
-    const Decl *D = getDecl();
-    if (!D)
-      return false;
-
-    SourceLocation Loc = D->getLocation();
-    if (Loc.isValid()) {
-      const SourceManager &SM =
-        getState()->getStateManager().getContext().getSourceManager();
-      return SM.isInSystemHeader(D->getLocation());
-    }
-
-    // Special case for implicitly-declared global operator new/delete.
-    // These should be considered system functions.
-    if (const FunctionDecl *FD = dyn_cast<FunctionDecl>(D))
-      return FD->isOverloadedOperator() && FD->isImplicit() && FD->isGlobal();
-
-    return false;
-  }
-
-  /// \brief Returns a source range for the entire call, suitable for
-  /// outputting in diagnostics.
-  SourceRange getSourceRange() const;
-
-  /// \brief Returns the value of a given argument at the time of the call.
-  SVal getArgSVal(unsigned Index) const;
-
-  /// \brief Returns the expression associated with a given argument.
-  /// May be null if this expression does not appear in the source.
-  const Expr *getArgExpr(unsigned Index) const;
-
-  /// \brief Returns the source range for errors associated with this argument.
-  /// May be invalid if the argument is not written in the source.
-  // FIXME: Is it better to return an invalid range or the range of the origin
-  // expression?
-  SourceRange getArgSourceRange(unsigned Index) const;
-
-  /// \brief Returns the result type, adjusted for references.
-  QualType getResultType() const;
-
-  /// \brief Returns the value of the implicit 'this' object, or UndefinedVal if
-  /// this is not a C++ member function call.
-  SVal getCXXThisVal() const;
-
-  /// \brief Returns true if any of the arguments appear to represent callbacks.
-  bool hasNonZeroCallbackArg() const;
-
-  /// \brief Returns true if any of the arguments are known to escape to long-
-  /// term storage, even if this method will not modify them.
-  // NOTE: The exact semantics of this are still being defined!
-  // We don't really want a list of hardcoded exceptions in the long run,
-  // but we don't want duplicated lists of known APIs in the short term either.
-  bool argumentsMayEscape() const;
-
-  /// \brief Returns an appropriate ProgramPoint for this call.
-  ProgramPoint getProgramPoint(bool IsPreVisit = false,
-                               const ProgramPointTag *Tag = 0) const;
-
-  /// \brief Returns a new state with all argument regions invalidated.
-  ///
-  /// This accepts an alternate state in case some processing has already
-  /// occurred.
-  ProgramStateRef invalidateRegions(unsigned BlockCount,
-                                    ProgramStateRef Orig = 0) const;
-
-  /// \brief Returns true if this is a statement that can be considered for
-  /// inlining.
-  static bool mayBeInlined(const Stmt *S);
-
-  // Iterator access to formal parameters and their types.
-private:
-  typedef std::const_mem_fun_t<QualType, ParmVarDecl> get_type_fun;
-  
-public:
-  typedef const ParmVarDecl * const *param_iterator;
-
-  /// Returns an iterator over the call's formal parameters.
-  ///
-  /// If UseDefinitionParams is set, this will return the parameter decls
-  /// used in the callee's definition (suitable for inlining). Most of the
-  /// time it is better to use the decl found by name lookup, which likely
-  /// carries more annotations.
-  ///
-  /// Remember that the number of formal parameters may not match the number
-  /// of arguments for all calls. However, the first parameter will always
-  /// correspond with the argument value returned by \c getArgSVal(0).
-  ///
-  /// If the call has no accessible declaration (or definition, if
-  /// \p UseDefinitionParams is set), \c param_begin() will be equal to
-  /// \c param_end().
-  param_iterator param_begin(bool UseDefinitionParams = false) const;
-  /// \sa param_begin()
-  param_iterator param_end(bool UseDefinitionParams = false) const;
-
-  typedef llvm::mapped_iterator<param_iterator, get_type_fun>
-    param_type_iterator;
-
-  /// Returns an iterator over the types of the call's formal parameters.
-  ///
-  /// This uses the callee decl found by default name lookup rather than the
-  /// definition because it represents a public interface, and probably has
-  /// more annotations.
-  param_type_iterator param_type_begin() const {
-    return llvm::map_iterator(param_begin(),
-                              get_type_fun(&ParmVarDecl::getType));
-  }
-  /// \sa param_type_begin()
-  param_type_iterator param_type_end() const {
-    return llvm::map_iterator(param_end(), get_type_fun(&ParmVarDecl::getType));
-  }
-
-  // For debugging purposes only
-  void dump(raw_ostream &Out) const;
-  LLVM_ATTRIBUTE_USED void dump() const { dump(llvm::errs()); }
-
-  static bool classof(const CallEvent *) { return true; }
-};
-
-
-/// \brief Represents a call to any sort of function that might have a
-/// FunctionDecl.
-class AnyFunctionCall : public CallEvent {
-  friend class CallEvent;
-
-protected:
-  AnyFunctionCall(const Expr *E, ProgramStateRef St,
-                  const LocationContext *LCtx, Kind K)
-    : CallEvent(E, St, LCtx, K) {}
-  AnyFunctionCall(const Decl *D, ProgramStateRef St,
-                  const LocationContext *LCtx, Kind K)
-    : CallEvent(D, St, LCtx, K) {}
-
-  // Most function calls have no extra invalidated regions.
-  void getExtraInvalidatedRegions(RegionList &Regions) const {}
-
-  QualType getDeclaredResultType() const;
-
-public:
-  // This function is overridden by subclasses, but they must return
-  // a FunctionDecl.
-  const FunctionDecl *getDecl() const {
-    return cast_or_null<FunctionDecl>(CallEvent::getDecl());
-  }
-
-  const Decl *getRuntimeDefinition() const {
-    const FunctionDecl *FD = getDecl();
-    // Note that hasBody() will fill FD with the definition FunctionDecl.
-    if (FD && FD->hasBody(FD))
-      return FD;
-    return 0;
-  }
-
-  bool argumentsMayEscape() const;
-
-  SVal getArgSVal(unsigned Index) const;
-  SourceRange getArgSourceRange(unsigned Index) const;
-
-  param_iterator param_begin(bool UseDefinitionParams = false) const;
-  param_iterator param_end(bool UseDefinitionParams = false) const;
-
-  static bool classof(const CallEvent *CA) {
-    return CA->getKind() >= CE_BEG_FUNCTION_CALLS &&
-           CA->getKind() <= CE_END_FUNCTION_CALLS;
-  }
-};
-
-/// \brief Represents a call to a written as a CallExpr.
-class SimpleCall : public AnyFunctionCall {
-protected:
-  SimpleCall(const CallExpr *CE, ProgramStateRef St,
-             const LocationContext *LCtx, Kind K)
-    : AnyFunctionCall(CE, St, LCtx, K) {
-  }
-
-public:
-  const CallExpr *getOriginExpr() const {
-    return cast<CallExpr>(AnyFunctionCall::getOriginExpr());
-  }
-
-  const FunctionDecl *getDecl() const;
-
-  unsigned getNumArgs() const { return getOriginExpr()->getNumArgs(); }
-  SourceRange getSourceRange() const {
-    return getOriginExpr()->getSourceRange();
-  }
-  
-  const Expr *getArgExpr(unsigned Index) const {
-    return getOriginExpr()->getArg(Index);
-  }
-
-  static bool classof(const CallEvent *CA) {
-    return CA->getKind() >= CE_BEG_SIMPLE_CALLS &&
-           CA->getKind() <= CE_END_SIMPLE_CALLS;
-  }
-};
-
-/// \brief Represents a C function or static C++ member function call.
-///
-/// Example: \c fun()
-class FunctionCall : public SimpleCall {
-public:
-  FunctionCall(const CallExpr *CE, ProgramStateRef St,
-               const LocationContext *LCtx)
-    : SimpleCall(CE, St, LCtx, CE_Function) {}
-
-  SVal getCXXThisVal() const { return UndefinedVal(); }
-
-  static bool classof(const CallEvent *CA) {
-    return CA->getKind() == CE_Function;
-  }
-};
-
-/// \brief Represents a non-static C++ member function call, no matter how
-/// it is written.
-class CXXInstanceCall : public SimpleCall {
-  friend class CallEvent;
-
-protected:
-  void getExtraInvalidatedRegions(RegionList &Regions) const;
-
-  CXXInstanceCall(const CallExpr *CE, ProgramStateRef St,
-                  const LocationContext *LCtx, Kind K)
-    : SimpleCall(CE, St, LCtx, K) {}
-
-public:
-  const Decl *getRuntimeDefinition() const;
-
-  static bool classof(const CallEvent *CA) {
-    return CA->getKind() >= CE_BEG_CXX_INSTANCE_CALLS &&
-           CA->getKind() <= CE_END_CXX_INSTANCE_CALLS;
-  }
-};
-
-/// \brief Represents a non-static C++ member function call.
-///
-/// Example: \c obj.fun()
-class CXXMemberCall : public CXXInstanceCall {
-public:
-  CXXMemberCall(const CXXMemberCallExpr *CE, ProgramStateRef St,
-                const LocationContext *LCtx)
-    : CXXInstanceCall(CE, St, LCtx, CE_CXXMember) {}
-
-  const CXXMemberCallExpr *getOriginExpr() const {
-    return cast<CXXMemberCallExpr>(SimpleCall::getOriginExpr());
-  }
-
-  SVal getCXXThisVal() const;
-
-  static bool classof(const CallEvent *CA) {
-    return CA->getKind() == CE_CXXMember;
-  }
-};
-
-/// \brief Represents a C++ overloaded operator call where the operator is
-/// implemented as a non-static member function.
-///
-/// Example: <tt>iter + 1</tt>
-class CXXMemberOperatorCall : public CXXInstanceCall {
-public:
-  CXXMemberOperatorCall(const CXXOperatorCallExpr *CE, ProgramStateRef St,
-                        const LocationContext *LCtx)
-    : CXXInstanceCall(CE, St, LCtx, CE_CXXMemberOperator) {}
-
-  const CXXOperatorCallExpr *getOriginExpr() const {
-    return cast<CXXOperatorCallExpr>(SimpleCall::getOriginExpr());
-  }
-
-  unsigned getNumArgs() const { return getOriginExpr()->getNumArgs() - 1; }
-  const Expr *getArgExpr(unsigned Index) const {
-    return getOriginExpr()->getArg(Index + 1);
-  }
-
-  SVal getCXXThisVal() const;
-
-  static bool classof(const CallEvent *CA) {
-    return CA->getKind() == CE_CXXMemberOperator;
-  }
-};
-
-/// \brief Represents a call to a block.
-///
-/// Example: <tt>^{ /* ... */ }()</tt>
-class BlockCall : public SimpleCall {
-  friend class CallEvent;
-
-protected:
-  void getExtraInvalidatedRegions(RegionList &Regions) const;
-
-  QualType getDeclaredResultType() const;
-
-public:
-  BlockCall(const CallExpr *CE, ProgramStateRef St,
-            const LocationContext *LCtx)
-    : SimpleCall(CE, St, LCtx, CE_Block) {}
-
-  /// \brief Returns the region associated with this instance of the block.
-  ///
-  /// This may be NULL if the block's origin is unknown.
-  const BlockDataRegion *getBlockRegion() const;
-
-  /// \brief Gets the declaration of the block.
-  ///
-  /// This is not an override of getDecl() because AnyFunctionCall has already
-  /// assumed that it's a FunctionDecl.
-  const BlockDecl *getBlockDecl() const {
-    const BlockDataRegion *BR = getBlockRegion();
-    if (!BR)
-      return 0;
-    return BR->getDecl();
-  }
-
-  const Decl *getRuntimeDefinition() const {
-    return getBlockDecl();
-  }
-
-  param_iterator param_begin(bool UseDefinitionParams = false) const;
-  param_iterator param_end(bool UseDefinitionParams = false) const;
-
-  SVal getCXXThisVal() const { return UndefinedVal(); }
-
-  static bool classof(const CallEvent *CA) {
-    return CA->getKind() == CE_Block;
-  }
-};
-
-/// \brief Represents a call to a C++ constructor.
-///
-/// Example: \c T(1)
-class CXXConstructorCall : public AnyFunctionCall {
-  friend class CallEvent;
-
-protected:
-  void getExtraInvalidatedRegions(RegionList &Regions) const;
-
-public:
-  /// Represents a constructor call to a new or unknown region.
-  CXXConstructorCall(const CXXConstructExpr *CE, ProgramStateRef St,
-                     const LocationContext *LCtx)
-    : AnyFunctionCall(CE, St, LCtx, CE_CXXConstructor) {
-    Data = 0;
-  }
-
-  /// Represents a constructor call on an existing object region.
-  CXXConstructorCall(const CXXConstructExpr *CE, const MemRegion *target,
-                     ProgramStateRef St, const LocationContext *LCtx)
-    : AnyFunctionCall(CE, St, LCtx, CE_CXXConstructor) {
-    Data = target;
-  }
-
-  const CXXConstructExpr *getOriginExpr() const {
-    return cast<CXXConstructExpr>(AnyFunctionCall::getOriginExpr());
-  }
-
-  SourceRange getSourceRange() const {
-    return getOriginExpr()->getSourceRange();
-  }
-
-  const CXXConstructorDecl *getDecl() const {
-    return getOriginExpr()->getConstructor();
-  }
-
-  unsigned getNumArgs() const { return getOriginExpr()->getNumArgs(); }
-
-  const Expr *getArgExpr(unsigned Index) const {
-    return getOriginExpr()->getArg(Index);
-  }
-
-  SVal getCXXThisVal() const;
-
-  static bool classof(const CallEvent *CA) {
-    return CA->getKind() == CE_CXXConstructor;
-  }
-};
-
-/// \brief Represents an implicit call to a C++ destructor.
-///
-/// This can occur at the end of a scope (for automatic objects), at the end
-/// of a full-expression (for temporaries), or as part of a delete.
-class CXXDestructorCall : public AnyFunctionCall {
-  friend class CallEvent;
-
-protected:
-  void getExtraInvalidatedRegions(RegionList &Regions) const;
-
-public:
-  /// Creates an implicit destructor.
-  ///
-  /// \param DD The destructor that will be called.
-  /// \param Trigger The statement whose completion causes this destructor call.
-  /// \param Target The object region to be destructed.
-  /// \param St The path-sensitive state at this point in the program.
-  /// \param LCtx The location context at this point in the program.
-  CXXDestructorCall(const CXXDestructorDecl *DD, const Stmt *Trigger,
-                    const MemRegion *Target, ProgramStateRef St,
-                    const LocationContext *LCtx)
-    : AnyFunctionCall(DD, St, LCtx, CE_CXXDestructor) {
-    Data = Target;
-    Location = Trigger->getLocEnd();
-  }
-
-  SourceRange getSourceRange() const { return Location; }
-  unsigned getNumArgs() const { return 0; }
-
-  SVal getCXXThisVal() const;
-  const Decl *getRuntimeDefinition() const;
-
-  static bool classof(const CallEvent *CA) {
-    return CA->getKind() == CE_CXXDestructor;
-  }
-};
-
-/// \brief Represents the memory allocation call in a C++ new-expression.
-///
-/// This is a call to "operator new".
-class CXXAllocatorCall : public AnyFunctionCall {
-public:
-  CXXAllocatorCall(const CXXNewExpr *E, ProgramStateRef St,
-                   const LocationContext *LCtx)
-    : AnyFunctionCall(E, St, LCtx, CE_CXXAllocator) {}
-
-  const CXXNewExpr *getOriginExpr() const {
-    return cast<CXXNewExpr>(AnyFunctionCall::getOriginExpr());
-  }
-
-  // FIXME: This isn't exactly the range of the allocator...
-  SourceRange getSourceRange() const {
-    return getOriginExpr()->getSourceRange();
-  }
-
-  const FunctionDecl *getDecl() const {
-    return getOriginExpr()->getOperatorNew();
-  }
-
-  unsigned getNumArgs() const {
-    return getOriginExpr()->getNumPlacementArgs() + 1;
-  }
-
-  const Expr *getArgExpr(unsigned Index) const {
-    // The first argument of an allocator call is the size of the allocation.
-    if (Index == 0)
-      return 0;
-    return getOriginExpr()->getPlacementArg(Index - 1);
-  }
-
-  SVal getCXXThisVal() const { return UndefinedVal(); }
-
-  static bool classof(const CallEvent *CE) {
-    return CE->getKind() == CE_CXXAllocator;
-  }
-};
-
-/// \brief Represents the ways an Objective-C message send can occur.
-//
-// Note to maintainers: OCM_Message should always be last, since it does not
-// need to fit in the Data field's low bits.
-enum ObjCMessageKind {
-  OCM_PropertyAccess,
-  OCM_Subscript,
-  OCM_Message
-};
-
-/// \brief Represents any expression that calls an Objective-C method.
-///
-/// This includes all of the kinds listed in ObjCMessageKind.
-class ObjCMethodCall : public CallEvent {
-  friend class CallEvent;
-
-  const PseudoObjectExpr *getContainingPseudoObjectExpr() const;
-
-protected:
-  void getExtraInvalidatedRegions(RegionList &Regions) const;
-
-  QualType getDeclaredResultType() const;
-  ObjCMethodDecl *LookupClassMethodDefinition(Selector Sel,
-                                           ObjCInterfaceDecl *ClassDecl) const;
-
-public:
-  ObjCMethodCall(const ObjCMessageExpr *Msg, ProgramStateRef St,
-                 const LocationContext *LCtx)
-    : CallEvent(Msg, St, LCtx, CE_ObjCMessage) {
-    Data = 0;
-  }
-
-  const ObjCMessageExpr *getOriginExpr() const {
-    return cast<ObjCMessageExpr>(CallEvent::getOriginExpr());
-  }
-  const ObjCMethodDecl *getDecl() const {
-    return getOriginExpr()->getMethodDecl();
-  }
-  unsigned getNumArgs() const {
-    return getOriginExpr()->getNumArgs();
-  }
-  const Expr *getArgExpr(unsigned Index) const {
-    return getOriginExpr()->getArg(Index);
-  }
-
-  bool isInstanceMessage() const {
-    return getOriginExpr()->isInstanceMessage();
-  }
-  ObjCMethodFamily getMethodFamily() const {
-    return getOriginExpr()->getMethodFamily();
-  }
-  Selector getSelector() const {
-    return getOriginExpr()->getSelector();
-  }
-
-  SourceRange getSourceRange() const;
-
-  /// \brief Returns the value of the receiver at the time of this call.
-  SVal getReceiverSVal() const;
-
-  /// \brief Get the interface for the receiver.
-  ///
-  /// This works whether this is an instance message or a class message.
-  /// However, it currently just uses the static type of the receiver.
-  const ObjCInterfaceDecl *getReceiverInterface() const {
-    return getOriginExpr()->getReceiverInterface();
-  }
-
-  ObjCMessageKind getMessageKind() const;
-
-  bool isSetter() const {
-    switch (getMessageKind()) {
-    case OCM_Message:
-      llvm_unreachable("This is not a pseudo-object access!");
-    case OCM_PropertyAccess:
-      return getNumArgs() > 0;
-    case OCM_Subscript:
-      return getNumArgs() > 1;
-    }
-    llvm_unreachable("Unknown message kind");
-  }
-
-  // TODO: We might want to only compute this once (or change the API for 
-  // getting the parameters). Currently, this gets called 3 times during 
-  // inlining.
-  const Decl *getRuntimeDefinition() const {
-
-    const ObjCMessageExpr *E = getOriginExpr();
-    if (E->isInstanceMessage()) {
-      return 0;
-    } else {
-      // This is a calss method.
-      // If we have type info for the receiver class, we are calling via
-      // class name.
-      if (ObjCInterfaceDecl *IDecl = E->getReceiverInterface()) {
-        return LookupClassMethodDefinition(E->getSelector(), IDecl);
-      }
-    }
-
-    return 0;
-  }
-
-  SVal getCXXThisVal() const { return UndefinedVal(); }
-
-  bool argumentsMayEscape() const {
-    return hasNonZeroCallbackArg();
-  }
-  
-  SVal getArgSVal(unsigned Index) const { return getSVal(getArgExpr(Index)); }
-  SourceRange getArgSourceRange(unsigned Index) const {
-    return getArgExpr(Index)->getSourceRange();
-  }
-
-  param_iterator param_begin(bool UseDefinitionParams = false) const;
-  param_iterator param_end(bool UseDefinitionParams = false) const;
-
-  static bool classof(const CallEvent *CA) {
-    return CA->getKind() == CE_ObjCMessage;
-  }
-};
-
-
-// FIXME: Use a .def or .td file for this.
-#define DISPATCH(fn) \
-  switch (getKind()) { \
-  case CE_Function: \
-    return cast<FunctionCall>(this)->fn(); \
-  case CE_CXXMember: \
-    return cast<CXXMemberCall>(this)->fn(); \
-  case CE_CXXMemberOperator: \
-    return cast<CXXMemberOperatorCall>(this)->fn(); \
-  case CE_Block: \
-    return cast<BlockCall>(this)->fn(); \
-  case CE_CXXConstructor: \
-    return cast<CXXConstructorCall>(this)->fn(); \
-  case CE_CXXDestructor: \
-    return cast<CXXDestructorCall>(this)->fn(); \
-  case CE_CXXAllocator: \
-    return cast<CXXAllocatorCall>(this)->fn(); \
-  case CE_ObjCMessage: \
-    return cast<ObjCMethodCall>(this)->fn(); \
-  } \
-  llvm_unreachable("unknown CallEvent kind");
-
-#define DISPATCH_ARG(fn, arg) \
-  switch (getKind()) { \
-  case CE_Function: \
-    return cast<FunctionCall>(this)->fn(arg); \
-  case CE_CXXMember: \
-    return cast<CXXMemberCall>(this)->fn(arg); \
-  case CE_CXXMemberOperator: \
-    return cast<CXXMemberOperatorCall>(this)->fn(arg); \
-  case CE_Block: \
-    return cast<BlockCall>(this)->fn(arg); \
-  case CE_CXXConstructor: \
-    return cast<CXXConstructorCall>(this)->fn(arg); \
-  case CE_CXXDestructor: \
-    return cast<CXXDestructorCall>(this)->fn(arg); \
-  case CE_CXXAllocator: \
-    return cast<CXXAllocatorCall>(this)->fn(arg); \
-  case CE_ObjCMessage: \
-    return cast<ObjCMethodCall>(this)->fn(arg); \
-  } \
-  llvm_unreachable("unknown CallEvent kind");
-
-inline void CallEvent::getExtraInvalidatedRegions(RegionList &Regions) const {
-  DISPATCH_ARG(getExtraInvalidatedRegions, Regions);
-}
-
-inline QualType CallEvent::getDeclaredResultType() const {
-  DISPATCH(getDeclaredResultType);
-}
-
-inline const Decl *CallEvent::getDecl() const {
-  if (const Decl *D = Origin.dyn_cast<const Decl *>())
-    return D;
-  DISPATCH(getDecl);
-}
-
-inline const Decl *CallEvent::getRuntimeDefinition() const {
-  DISPATCH(getRuntimeDefinition);
-}
-
-inline unsigned CallEvent::getNumArgs() const {
-  DISPATCH(getNumArgs);
-}
-
-inline SourceRange CallEvent::getSourceRange() const {
-  DISPATCH(getSourceRange);
-}
-
-inline SVal CallEvent::getArgSVal(unsigned Index) const {
-  DISPATCH_ARG(getArgSVal, Index);
-}
-
-inline const Expr *CallEvent::getArgExpr(unsigned Index) const {
-  DISPATCH_ARG(getArgExpr, Index);
-}
-
-inline SourceRange CallEvent::getArgSourceRange(unsigned Index) const {
-  DISPATCH_ARG(getArgSourceRange, Index);
-}
-
-inline SVal CallEvent::getCXXThisVal() const {
-  DISPATCH(getCXXThisVal);
-}
-
-
-inline bool CallEvent::argumentsMayEscape() const {
-  DISPATCH(argumentsMayEscape);
-}
-
-inline CallEvent::param_iterator
-CallEvent::param_begin(bool UseDefinitionParams) const {
-  DISPATCH_ARG(param_begin, UseDefinitionParams);
-}
-
-inline CallEvent::param_iterator
-CallEvent::param_end(bool UseDefinitionParams) const {
-  DISPATCH_ARG(param_end, UseDefinitionParams);
-}
-
-#undef DISPATCH
-#undef DISPATCH_ARG
-
-} // end namespace ento
-} // end namespace clang
-
-#endif

Modified: cfe/trunk/lib/StaticAnalyzer/Checkers/AttrNonNullChecker.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/StaticAnalyzer/Checkers/AttrNonNullChecker.cpp?rev=160815&r1=160814&r2=160815&view=diff
==============================================================================
--- cfe/trunk/lib/StaticAnalyzer/Checkers/AttrNonNullChecker.cpp (original)
+++ cfe/trunk/lib/StaticAnalyzer/Checkers/AttrNonNullChecker.cpp Thu Jul 26 16:39:41 2012
@@ -15,7 +15,7 @@
 #include "ClangSACheckers.h"
 #include "clang/StaticAnalyzer/Core/Checker.h"
 #include "clang/StaticAnalyzer/Core/CheckerManager.h"
-#include "clang/StaticAnalyzer/Core/PathSensitive/Calls.h"
+#include "clang/StaticAnalyzer/Core/PathSensitive/CallEvent.h"
 #include "clang/StaticAnalyzer/Core/PathSensitive/CheckerContext.h"
 #include "clang/StaticAnalyzer/Core/BugReporter/BugType.h"
 

Modified: cfe/trunk/lib/StaticAnalyzer/Checkers/BasicObjCFoundationChecks.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/StaticAnalyzer/Checkers/BasicObjCFoundationChecks.cpp?rev=160815&r1=160814&r2=160815&view=diff
==============================================================================
--- cfe/trunk/lib/StaticAnalyzer/Checkers/BasicObjCFoundationChecks.cpp (original)
+++ cfe/trunk/lib/StaticAnalyzer/Checkers/BasicObjCFoundationChecks.cpp Thu Jul 26 16:39:41 2012
@@ -17,7 +17,7 @@
 #include "clang/Analysis/DomainSpecific/CocoaConventions.h"
 #include "clang/StaticAnalyzer/Core/Checker.h"
 #include "clang/StaticAnalyzer/Core/CheckerManager.h"
-#include "clang/StaticAnalyzer/Core/PathSensitive/Calls.h"
+#include "clang/StaticAnalyzer/Core/PathSensitive/CallEvent.h"
 #include "clang/StaticAnalyzer/Core/PathSensitive/CheckerContext.h"
 #include "clang/StaticAnalyzer/Core/PathSensitive/ExplodedGraph.h"
 #include "clang/StaticAnalyzer/Core/PathSensitive/ExprEngine.h"

Modified: cfe/trunk/lib/StaticAnalyzer/Checkers/CallAndMessageChecker.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/StaticAnalyzer/Checkers/CallAndMessageChecker.cpp?rev=160815&r1=160814&r2=160815&view=diff
==============================================================================
--- cfe/trunk/lib/StaticAnalyzer/Checkers/CallAndMessageChecker.cpp (original)
+++ cfe/trunk/lib/StaticAnalyzer/Checkers/CallAndMessageChecker.cpp Thu Jul 26 16:39:41 2012
@@ -15,7 +15,7 @@
 #include "ClangSACheckers.h"
 #include "clang/StaticAnalyzer/Core/Checker.h"
 #include "clang/StaticAnalyzer/Core/CheckerManager.h"
-#include "clang/StaticAnalyzer/Core/PathSensitive/Calls.h"
+#include "clang/StaticAnalyzer/Core/PathSensitive/CallEvent.h"
 #include "clang/StaticAnalyzer/Core/PathSensitive/CheckerContext.h"
 #include "clang/StaticAnalyzer/Core/BugReporter/BugType.h"
 #include "clang/AST/ParentMap.h"

Modified: cfe/trunk/lib/StaticAnalyzer/Checkers/MallocChecker.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/StaticAnalyzer/Checkers/MallocChecker.cpp?rev=160815&r1=160814&r2=160815&view=diff
==============================================================================
--- cfe/trunk/lib/StaticAnalyzer/Checkers/MallocChecker.cpp (original)
+++ cfe/trunk/lib/StaticAnalyzer/Checkers/MallocChecker.cpp Thu Jul 26 16:39:41 2012
@@ -18,7 +18,7 @@
 #include "clang/StaticAnalyzer/Core/CheckerManager.h"
 #include "clang/StaticAnalyzer/Core/PathSensitive/CheckerContext.h"
 #include "clang/StaticAnalyzer/Core/BugReporter/BugType.h"
-#include "clang/StaticAnalyzer/Core/PathSensitive/Calls.h"
+#include "clang/StaticAnalyzer/Core/PathSensitive/CallEvent.h"
 #include "clang/StaticAnalyzer/Core/PathSensitive/ProgramState.h"
 #include "clang/StaticAnalyzer/Core/PathSensitive/ProgramStateTrait.h"
 #include "clang/StaticAnalyzer/Core/PathSensitive/SymbolManager.h"

Modified: cfe/trunk/lib/StaticAnalyzer/Checkers/NSAutoreleasePoolChecker.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/StaticAnalyzer/Checkers/NSAutoreleasePoolChecker.cpp?rev=160815&r1=160814&r2=160815&view=diff
==============================================================================
--- cfe/trunk/lib/StaticAnalyzer/Checkers/NSAutoreleasePoolChecker.cpp (original)
+++ cfe/trunk/lib/StaticAnalyzer/Checkers/NSAutoreleasePoolChecker.cpp Thu Jul 26 16:39:41 2012
@@ -20,7 +20,7 @@
 #include "clang/StaticAnalyzer/Core/CheckerManager.h"
 #include "clang/StaticAnalyzer/Core/BugReporter/BugReporter.h"
 #include "clang/StaticAnalyzer/Core/BugReporter/BugType.h"
-#include "clang/StaticAnalyzer/Core/PathSensitive/Calls.h"
+#include "clang/StaticAnalyzer/Core/PathSensitive/CallEvent.h"
 #include "clang/StaticAnalyzer/Core/PathSensitive/CheckerContext.h"
 #include "clang/StaticAnalyzer/Core/PathSensitive/ExprEngine.h"
 #include "clang/AST/DeclObjC.h"

Modified: cfe/trunk/lib/StaticAnalyzer/Checkers/NoReturnFunctionChecker.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/StaticAnalyzer/Checkers/NoReturnFunctionChecker.cpp?rev=160815&r1=160814&r2=160815&view=diff
==============================================================================
--- cfe/trunk/lib/StaticAnalyzer/Checkers/NoReturnFunctionChecker.cpp (original)
+++ cfe/trunk/lib/StaticAnalyzer/Checkers/NoReturnFunctionChecker.cpp Thu Jul 26 16:39:41 2012
@@ -15,7 +15,7 @@
 #include "ClangSACheckers.h"
 #include "clang/StaticAnalyzer/Core/Checker.h"
 #include "clang/StaticAnalyzer/Core/CheckerManager.h"
-#include "clang/StaticAnalyzer/Core/PathSensitive/Calls.h"
+#include "clang/StaticAnalyzer/Core/PathSensitive/CallEvent.h"
 #include "clang/StaticAnalyzer/Core/PathSensitive/CheckerContext.h"
 #include "llvm/ADT/StringSwitch.h"
 #include <cstdarg>

Modified: cfe/trunk/lib/StaticAnalyzer/Checkers/ObjCSelfInitChecker.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/StaticAnalyzer/Checkers/ObjCSelfInitChecker.cpp?rev=160815&r1=160814&r2=160815&view=diff
==============================================================================
--- cfe/trunk/lib/StaticAnalyzer/Checkers/ObjCSelfInitChecker.cpp (original)
+++ cfe/trunk/lib/StaticAnalyzer/Checkers/ObjCSelfInitChecker.cpp Thu Jul 26 16:39:41 2012
@@ -39,7 +39,7 @@
 #include "ClangSACheckers.h"
 #include "clang/StaticAnalyzer/Core/Checker.h"
 #include "clang/StaticAnalyzer/Core/CheckerManager.h"
-#include "clang/StaticAnalyzer/Core/PathSensitive/Calls.h"
+#include "clang/StaticAnalyzer/Core/PathSensitive/CallEvent.h"
 #include "clang/StaticAnalyzer/Core/PathSensitive/CheckerContext.h"
 #include "clang/StaticAnalyzer/Core/PathSensitive/ProgramStateTrait.h"
 #include "clang/StaticAnalyzer/Core/BugReporter/BugType.h"

Modified: cfe/trunk/lib/StaticAnalyzer/Checkers/RetainCountChecker.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/StaticAnalyzer/Checkers/RetainCountChecker.cpp?rev=160815&r1=160814&r2=160815&view=diff
==============================================================================
--- cfe/trunk/lib/StaticAnalyzer/Checkers/RetainCountChecker.cpp (original)
+++ cfe/trunk/lib/StaticAnalyzer/Checkers/RetainCountChecker.cpp Thu Jul 26 16:39:41 2012
@@ -23,7 +23,7 @@
 #include "clang/StaticAnalyzer/Core/CheckerManager.h"
 #include "clang/StaticAnalyzer/Core/BugReporter/BugType.h"
 #include "clang/StaticAnalyzer/Core/BugReporter/PathDiagnostic.h"
-#include "clang/StaticAnalyzer/Core/PathSensitive/Calls.h"
+#include "clang/StaticAnalyzer/Core/PathSensitive/CallEvent.h"
 #include "clang/StaticAnalyzer/Core/PathSensitive/CheckerContext.h"
 #include "clang/StaticAnalyzer/Core/PathSensitive/ProgramStateTrait.h"
 #include "clang/StaticAnalyzer/Core/PathSensitive/SymbolManager.h"

Modified: cfe/trunk/lib/StaticAnalyzer/Checkers/TraversalChecker.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/StaticAnalyzer/Checkers/TraversalChecker.cpp?rev=160815&r1=160814&r2=160815&view=diff
==============================================================================
--- cfe/trunk/lib/StaticAnalyzer/Checkers/TraversalChecker.cpp (original)
+++ cfe/trunk/lib/StaticAnalyzer/Checkers/TraversalChecker.cpp Thu Jul 26 16:39:41 2012
@@ -16,7 +16,7 @@
 #include "clang/AST/StmtObjC.h"
 #include "clang/StaticAnalyzer/Core/Checker.h"
 #include "clang/StaticAnalyzer/Core/CheckerManager.h"
-#include "clang/StaticAnalyzer/Core/PathSensitive/Calls.h"
+#include "clang/StaticAnalyzer/Core/PathSensitive/CallEvent.h"
 #include "clang/StaticAnalyzer/Core/PathSensitive/CheckerContext.h"
 
 using namespace clang;

Modified: cfe/trunk/lib/StaticAnalyzer/Core/CMakeLists.txt
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/StaticAnalyzer/Core/CMakeLists.txt?rev=160815&r1=160814&r2=160815&view=diff
==============================================================================
--- cfe/trunk/lib/StaticAnalyzer/Core/CMakeLists.txt (original)
+++ cfe/trunk/lib/StaticAnalyzer/Core/CMakeLists.txt Thu Jul 26 16:39:41 2012
@@ -8,7 +8,7 @@
   BlockCounter.cpp
   BugReporter.cpp
   BugReporterVisitors.cpp
-  Calls.cpp
+  CallEvent.cpp
   Checker.cpp
   CheckerContext.cpp
   CheckerHelpers.cpp

Copied: cfe/trunk/lib/StaticAnalyzer/Core/CallEvent.cpp (from r160810, cfe/trunk/lib/StaticAnalyzer/Core/Calls.cpp)
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/StaticAnalyzer/Core/CallEvent.cpp?p2=cfe/trunk/lib/StaticAnalyzer/Core/CallEvent.cpp&p1=cfe/trunk/lib/StaticAnalyzer/Core/Calls.cpp&r1=160810&r2=160815&rev=160815&view=diff
==============================================================================
--- cfe/trunk/lib/StaticAnalyzer/Core/Calls.cpp (original)
+++ cfe/trunk/lib/StaticAnalyzer/Core/CallEvent.cpp Thu Jul 26 16:39:41 2012
@@ -13,7 +13,7 @@
 //
 //===----------------------------------------------------------------------===//
 
-#include "clang/StaticAnalyzer/Core/PathSensitive/Calls.h"
+#include "clang/StaticAnalyzer/Core/PathSensitive/CallEvent.h"
 #include "clang/Analysis/ProgramPoint.h"
 #include "clang/AST/ParentMap.h"
 #include "llvm/ADT/SmallSet.h"

Removed: cfe/trunk/lib/StaticAnalyzer/Core/Calls.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/StaticAnalyzer/Core/Calls.cpp?rev=160814&view=auto
==============================================================================
--- cfe/trunk/lib/StaticAnalyzer/Core/Calls.cpp (original)
+++ cfe/trunk/lib/StaticAnalyzer/Core/Calls.cpp (removed)
@@ -1,620 +0,0 @@
-//===- Calls.cpp - Wrapper for all function and method calls ------*- C++ -*--//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-/// \file This file defines CallEvent and its subclasses, which represent path-
-/// sensitive instances of different kinds of function and method calls
-/// (C, C++, and Objective-C).
-//
-//===----------------------------------------------------------------------===//
-
-#include "clang/StaticAnalyzer/Core/PathSensitive/Calls.h"
-#include "clang/Analysis/ProgramPoint.h"
-#include "clang/AST/ParentMap.h"
-#include "llvm/ADT/SmallSet.h"
-#include "llvm/ADT/StringExtras.h"
-
-using namespace clang;
-using namespace ento;
-
-QualType CallEvent::getResultType() const {
-  QualType ResultTy = getDeclaredResultType();
-
-  if (ResultTy.isNull())
-    ResultTy = getOriginExpr()->getType();
-
-  return ResultTy;
-}
-
-static bool isCallbackArg(SVal V, QualType T) {
-  // If the parameter is 0, it's harmless.
-  if (V.isZeroConstant())
-    return false;
-
-  // If a parameter is a block or a callback, assume it can modify pointer.
-  if (T->isBlockPointerType() ||
-      T->isFunctionPointerType() ||
-      T->isObjCSelType())
-    return true;
-
-  // Check if a callback is passed inside a struct (for both, struct passed by
-  // reference and by value). Dig just one level into the struct for now.
-
-  if (isa<PointerType>(T) || isa<ReferenceType>(T))
-    T = T->getPointeeType();
-
-  if (const RecordType *RT = T->getAsStructureType()) {
-    const RecordDecl *RD = RT->getDecl();
-    for (RecordDecl::field_iterator I = RD->field_begin(), E = RD->field_end();
-         I != E; ++I) {
-      QualType FieldT = I->getType();
-      if (FieldT->isBlockPointerType() || FieldT->isFunctionPointerType())
-        return true;
-    }
-  }
-
-  return false;
-}
-
-bool CallEvent::hasNonZeroCallbackArg() const {
-  unsigned NumOfArgs = getNumArgs();
-
-  // If calling using a function pointer, assume the function does not
-  // have a callback. TODO: We could check the types of the arguments here.
-  if (!getDecl())
-    return false;
-
-  unsigned Idx = 0;
-  for (CallEvent::param_type_iterator I = param_type_begin(),
-                                       E = param_type_end();
-       I != E && Idx < NumOfArgs; ++I, ++Idx) {
-    if (NumOfArgs <= Idx)
-      break;
-
-    if (isCallbackArg(getArgSVal(Idx), *I))
-      return true;
-  }
-  
-  return false;
-}
-
-/// \brief Returns true if a type is a pointer-to-const or reference-to-const
-/// with no further indirection.
-static bool isPointerToConst(QualType Ty) {
-  QualType PointeeTy = Ty->getPointeeType();
-  if (PointeeTy == QualType())
-    return false;
-  if (!PointeeTy.isConstQualified())
-    return false;
-  if (PointeeTy->isAnyPointerType())
-    return false;
-  return true;
-}
-
-// Try to retrieve the function declaration and find the function parameter
-// types which are pointers/references to a non-pointer const.
-// We will not invalidate the corresponding argument regions.
-static void findPtrToConstParams(llvm::SmallSet<unsigned, 1> &PreserveArgs,
-                                 const CallEvent &Call) {
-  unsigned Idx = 0;
-  for (CallEvent::param_type_iterator I = Call.param_type_begin(),
-                                      E = Call.param_type_end();
-       I != E; ++I, ++Idx) {
-    if (isPointerToConst(*I))
-      PreserveArgs.insert(Idx);
-  }
-}
-
-ProgramStateRef CallEvent::invalidateRegions(unsigned BlockCount,
-                                              ProgramStateRef Orig) const {
-  ProgramStateRef Result = (Orig ? Orig : getState());
-
-  SmallVector<const MemRegion *, 8> RegionsToInvalidate;
-  getExtraInvalidatedRegions(RegionsToInvalidate);
-
-  // Indexes of arguments whose values will be preserved by the call.
-  llvm::SmallSet<unsigned, 1> PreserveArgs;
-  if (!argumentsMayEscape())
-    findPtrToConstParams(PreserveArgs, *this);
-
-  for (unsigned Idx = 0, Count = getNumArgs(); Idx != Count; ++Idx) {
-    if (PreserveArgs.count(Idx))
-      continue;
-
-    SVal V = getArgSVal(Idx);
-
-    // If we are passing a location wrapped as an integer, unwrap it and
-    // invalidate the values referred by the location.
-    if (nonloc::LocAsInteger *Wrapped = dyn_cast<nonloc::LocAsInteger>(&V))
-      V = Wrapped->getLoc();
-    else if (!isa<Loc>(V))
-      continue;
-
-    if (const MemRegion *R = V.getAsRegion()) {
-      // Invalidate the value of the variable passed by reference.
-
-      // Are we dealing with an ElementRegion?  If the element type is
-      // a basic integer type (e.g., char, int) and the underlying region
-      // is a variable region then strip off the ElementRegion.
-      // FIXME: We really need to think about this for the general case
-      //   as sometimes we are reasoning about arrays and other times
-      //   about (char*), etc., is just a form of passing raw bytes.
-      //   e.g., void *p = alloca(); foo((char*)p);
-      if (const ElementRegion *ER = dyn_cast<ElementRegion>(R)) {
-        // Checking for 'integral type' is probably too promiscuous, but
-        // we'll leave it in for now until we have a systematic way of
-        // handling all of these cases.  Eventually we need to come up
-        // with an interface to StoreManager so that this logic can be
-        // appropriately delegated to the respective StoreManagers while
-        // still allowing us to do checker-specific logic (e.g.,
-        // invalidating reference counts), probably via callbacks.
-        if (ER->getElementType()->isIntegralOrEnumerationType()) {
-          const MemRegion *superReg = ER->getSuperRegion();
-          if (isa<VarRegion>(superReg) || isa<FieldRegion>(superReg) ||
-              isa<ObjCIvarRegion>(superReg))
-            R = cast<TypedRegion>(superReg);
-        }
-        // FIXME: What about layers of ElementRegions?
-      }
-
-      // Mark this region for invalidation.  We batch invalidate regions
-      // below for efficiency.
-      RegionsToInvalidate.push_back(R);
-    }
-  }
-
-  // Invalidate designated regions using the batch invalidation API.
-  // NOTE: Even if RegionsToInvalidate is empty, we may still invalidate
-  //  global variables.
-  return Result->invalidateRegions(RegionsToInvalidate, getOriginExpr(),
-                                   BlockCount, getLocationContext(),
-                                   /*Symbols=*/0, this);
-}
-
-ProgramPoint CallEvent::getProgramPoint(bool IsPreVisit,
-                                        const ProgramPointTag *Tag) const {
-  if (const Expr *E = getOriginExpr()) {
-    if (IsPreVisit)
-      return PreStmt(E, getLocationContext(), Tag);
-    return PostStmt(E, getLocationContext(), Tag);
-  }
-
-  const Decl *D = getDecl();
-  assert(D && "Cannot get a program point without a statement or decl");  
-
-  SourceLocation Loc = getSourceRange().getBegin();
-  if (IsPreVisit)
-    return PreImplicitCall(D, Loc, getLocationContext(), Tag);
-  return PostImplicitCall(D, Loc, getLocationContext(), Tag);
-}
-
-
-bool CallEvent::mayBeInlined(const Stmt *S) {
-  return isa<CallExpr>(S);
-}
-
-
-CallEvent::param_iterator
-AnyFunctionCall::param_begin(bool UseDefinitionParams) const {
-  const Decl *D = UseDefinitionParams ? getRuntimeDefinition()
-                                      : getDecl();
-  if (!D)
-    return 0;
-
-  return cast<FunctionDecl>(D)->param_begin();
-}
-
-CallEvent::param_iterator
-AnyFunctionCall::param_end(bool UseDefinitionParams) const {
-  const Decl *D = UseDefinitionParams ? getRuntimeDefinition()
-                                      : getDecl();
-  if (!D)
-    return 0;
-
-  return cast<FunctionDecl>(D)->param_end();
-}
-
-QualType AnyFunctionCall::getDeclaredResultType() const {
-  const FunctionDecl *D = getDecl();
-  if (!D)
-    return QualType();
-
-  return D->getResultType();
-}
-
-bool AnyFunctionCall::argumentsMayEscape() const {
-  if (hasNonZeroCallbackArg())
-    return true;
-
-  const FunctionDecl *D = getDecl();
-  if (!D)
-    return true;
-
-  const IdentifierInfo *II = D->getIdentifier();
-  if (!II)
-    return true;
-
-  // This set of "escaping" APIs is 
-
-  // - 'int pthread_setspecific(ptheread_key k, const void *)' stores a
-  //   value into thread local storage. The value can later be retrieved with
-  //   'void *ptheread_getspecific(pthread_key)'. So even thought the
-  //   parameter is 'const void *', the region escapes through the call.
-  if (II->isStr("pthread_setspecific"))
-    return true;
-
-  // - xpc_connection_set_context stores a value which can be retrieved later
-  //   with xpc_connection_get_context.
-  if (II->isStr("xpc_connection_set_context"))
-    return true;
-
-  // - funopen - sets a buffer for future IO calls.
-  if (II->isStr("funopen"))
-    return true;
-
-  StringRef FName = II->getName();
-
-  // - CoreFoundation functions that end with "NoCopy" can free a passed-in
-  //   buffer even if it is const.
-  if (FName.endswith("NoCopy"))
-    return true;
-
-  // - NSXXInsertXX, for example NSMapInsertIfAbsent, since they can
-  //   be deallocated by NSMapRemove.
-  if (FName.startswith("NS") && (FName.find("Insert") != StringRef::npos))
-    return true;
-
-  // - Many CF containers allow objects to escape through custom
-  //   allocators/deallocators upon container construction. (PR12101)
-  if (FName.startswith("CF") || FName.startswith("CG")) {
-    return StrInStrNoCase(FName, "InsertValue")  != StringRef::npos ||
-           StrInStrNoCase(FName, "AddValue")     != StringRef::npos ||
-           StrInStrNoCase(FName, "SetValue")     != StringRef::npos ||
-           StrInStrNoCase(FName, "WithData")     != StringRef::npos ||
-           StrInStrNoCase(FName, "AppendValue")  != StringRef::npos ||
-           StrInStrNoCase(FName, "SetAttribute") != StringRef::npos;
-  }
-
-  return false;
-}
-
-SVal AnyFunctionCall::getArgSVal(unsigned Index) const {
-  const Expr *ArgE = getArgExpr(Index);
-  if (!ArgE)
-    return UnknownVal();
-  return getSVal(ArgE);
-}
-
-SourceRange AnyFunctionCall::getArgSourceRange(unsigned Index) const {
-  const Expr *ArgE = getArgExpr(Index);
-  if (!ArgE)
-    return SourceRange();
-  return ArgE->getSourceRange();
-}
-
-
-const FunctionDecl *SimpleCall::getDecl() const {
-  const FunctionDecl *D = getOriginExpr()->getDirectCallee();
-  if (D)
-    return D;
-
-  return getSVal(getOriginExpr()->getCallee()).getAsFunctionDecl();
-}
-
-void CallEvent::dump(raw_ostream &Out) const {
-  ASTContext &Ctx = getState()->getStateManager().getContext();
-  if (const Expr *E = getOriginExpr()) {
-    E->printPretty(Out, Ctx, 0, Ctx.getLangOpts());
-    Out << "\n";
-    return;
-  }
-
-  if (const Decl *D = getDecl()) {
-    Out << "Call to ";
-    D->print(Out, Ctx.getLangOpts());
-    return;
-  }
-
-  // FIXME: a string representation of the kind would be nice.
-  Out << "Unknown call (type " << getKind() << ")";
-}
-
-
-void CXXInstanceCall::getExtraInvalidatedRegions(RegionList &Regions) const {
-  if (const MemRegion *R = getCXXThisVal().getAsRegion())
-    Regions.push_back(R);
-}
-
-static const CXXMethodDecl *devirtualize(const CXXMethodDecl *MD, SVal ThisVal){
-  const MemRegion *R = ThisVal.getAsRegion();
-  if (!R)
-    return 0;
-
-  const TypedValueRegion *TR = dyn_cast<TypedValueRegion>(R->StripCasts());
-  if (!TR)
-    return 0;
-
-  const CXXRecordDecl *RD = TR->getValueType()->getAsCXXRecordDecl();
-  if (!RD)
-    return 0;
-
-  const CXXMethodDecl *Result = MD->getCorrespondingMethodInClass(RD);
-  const FunctionDecl *Definition;
-  if (!Result->hasBody(Definition))
-    return 0;
-
-  return cast<CXXMethodDecl>(Definition);
-}
-
-
-const Decl *CXXInstanceCall::getRuntimeDefinition() const {
-  const Decl *D = SimpleCall::getRuntimeDefinition();
-  if (!D)
-    return 0;
-
-  const CXXMethodDecl *MD = cast<CXXMethodDecl>(D);
-  if (!MD->isVirtual())
-    return MD;
-
-  // If the method is virtual, see if we can find the actual implementation
-  // based on context-sensitivity.
-  if (const CXXMethodDecl *Devirtualized = devirtualize(MD, getCXXThisVal()))
-    return Devirtualized;
-
-  return 0;
-}
-
-
-SVal CXXMemberCall::getCXXThisVal() const {
-  const Expr *Base = getOriginExpr()->getImplicitObjectArgument();
-
-  // FIXME: Will eventually need to cope with member pointers.  This is
-  // a limitation in getImplicitObjectArgument().
-  if (!Base)
-    return UnknownVal();
-
-  return getSVal(Base);
-}
-
-
-SVal CXXMemberOperatorCall::getCXXThisVal() const {
-  const Expr *Base = getOriginExpr()->getArg(0);
-  return getSVal(Base);
-}
-
-
-const BlockDataRegion *BlockCall::getBlockRegion() const {
-  const Expr *Callee = getOriginExpr()->getCallee();
-  const MemRegion *DataReg = getSVal(Callee).getAsRegion();
-
-  return dyn_cast_or_null<BlockDataRegion>(DataReg);
-}
-
-CallEvent::param_iterator
-BlockCall::param_begin(bool UseDefinitionParams) const {
-  // Blocks don't have distinct declarations and definitions.
-  (void)UseDefinitionParams;
-
-  const BlockDecl *D = getBlockDecl();
-  if (!D)
-    return 0;
-  return D->param_begin();
-}
-
-CallEvent::param_iterator
-BlockCall::param_end(bool UseDefinitionParams) const {
-  // Blocks don't have distinct declarations and definitions.
-  (void)UseDefinitionParams;
-
-  const BlockDecl *D = getBlockDecl();
-  if (!D)
-    return 0;
-  return D->param_end();
-}
-
-void BlockCall::getExtraInvalidatedRegions(RegionList &Regions) const {
-  // FIXME: This also needs to invalidate captured globals.
-  if (const MemRegion *R = getBlockRegion())
-    Regions.push_back(R);
-}
-
-QualType BlockCall::getDeclaredResultType() const {
-  const BlockDataRegion *BR = getBlockRegion();
-  if (!BR)
-    return QualType();
-  QualType BlockTy = BR->getCodeRegion()->getLocationType();
-  return cast<FunctionType>(BlockTy->getPointeeType())->getResultType();
-}
-
-
-SVal CXXConstructorCall::getCXXThisVal() const {
-  if (Data)
-    return loc::MemRegionVal(static_cast<const MemRegion *>(Data));
-  return UnknownVal();
-}
-
-void CXXConstructorCall::getExtraInvalidatedRegions(RegionList &Regions) const {
-  if (Data)
-    Regions.push_back(static_cast<const MemRegion *>(Data));
-}
-
-
-SVal CXXDestructorCall::getCXXThisVal() const {
-  if (Data)
-    return loc::MemRegionVal(static_cast<const MemRegion *>(Data));
-  return UnknownVal();
-}
-
-void CXXDestructorCall::getExtraInvalidatedRegions(RegionList &Regions) const {
-  if (Data)
-    Regions.push_back(static_cast<const MemRegion *>(Data));
-}
-
-const Decl *CXXDestructorCall::getRuntimeDefinition() const {
-  const Decl *D = AnyFunctionCall::getRuntimeDefinition();
-  if (!D)
-    return 0;
-
-  const CXXMethodDecl *MD = cast<CXXMethodDecl>(D);
-  if (!MD->isVirtual())
-    return MD;
-
-  // If the method is virtual, see if we can find the actual implementation
-  // based on context-sensitivity.
-  if (const CXXMethodDecl *Devirtualized = devirtualize(MD, getCXXThisVal()))
-    return Devirtualized;
-
-  return 0;
-}
-
-
-CallEvent::param_iterator
-ObjCMethodCall::param_begin(bool UseDefinitionParams) const {
-  const Decl *D = UseDefinitionParams ? getRuntimeDefinition()
-                                      : getDecl();
-  if (!D)
-    return 0;
-
-  return cast<ObjCMethodDecl>(D)->param_begin();
-}
-
-CallEvent::param_iterator
-ObjCMethodCall::param_end(bool UseDefinitionParams) const {
-  const Decl *D = UseDefinitionParams ? getRuntimeDefinition()
-                                      : getDecl();
-  if (!D)
-    return 0;
-
-  return cast<ObjCMethodDecl>(D)->param_end();
-}
-
-void
-ObjCMethodCall::getExtraInvalidatedRegions(RegionList &Regions) const {
-  if (const MemRegion *R = getReceiverSVal().getAsRegion())
-    Regions.push_back(R);
-}
-
-QualType ObjCMethodCall::getDeclaredResultType() const {
-  const ObjCMethodDecl *D = getDecl();
-  if (!D)
-    return QualType();
-
-  return D->getResultType();
-}
-
-SVal ObjCMethodCall::getReceiverSVal() const {
-  // FIXME: Is this the best way to handle class receivers?
-  if (!isInstanceMessage())
-    return UnknownVal();
-    
-  if (const Expr *Base = getOriginExpr()->getInstanceReceiver())
-    return getSVal(Base);
-
-  // An instance message with no expression means we are sending to super.
-  // In this case the object reference is the same as 'self'.
-  const LocationContext *LCtx = getLocationContext();
-  const ImplicitParamDecl *SelfDecl = LCtx->getSelfDecl();
-  assert(SelfDecl && "No message receiver Expr, but not in an ObjC method");
-  return getState()->getSVal(getState()->getRegion(SelfDecl, LCtx));
-}
-
-SourceRange ObjCMethodCall::getSourceRange() const {
-  switch (getMessageKind()) {
-  case OCM_Message:
-    return getOriginExpr()->getSourceRange();
-  case OCM_PropertyAccess:
-  case OCM_Subscript:
-    return getContainingPseudoObjectExpr()->getSourceRange();
-  }
-  llvm_unreachable("unknown message kind");
-}
-
-typedef llvm::PointerIntPair<const PseudoObjectExpr *, 2> ObjCMessageDataTy;
-
-const PseudoObjectExpr *ObjCMethodCall::getContainingPseudoObjectExpr() const {
-  assert(Data != 0 && "Lazy lookup not yet performed.");
-  assert(getMessageKind() != OCM_Message && "Explicit message send.");
-  return ObjCMessageDataTy::getFromOpaqueValue(Data).getPointer();
-}
-
-ObjCMessageKind ObjCMethodCall::getMessageKind() const {
-  if (Data == 0) {
-    ParentMap &PM = getLocationContext()->getParentMap();
-    const Stmt *S = PM.getParent(getOriginExpr());
-    if (const PseudoObjectExpr *POE = dyn_cast_or_null<PseudoObjectExpr>(S)) {
-      const Expr *Syntactic = POE->getSyntacticForm();
-
-      // This handles the funny case of assigning to the result of a getter.
-      // This can happen if the getter returns a non-const reference.
-      if (const BinaryOperator *BO = dyn_cast<BinaryOperator>(Syntactic))
-        Syntactic = BO->getLHS();
-
-      ObjCMessageKind K;
-      switch (Syntactic->getStmtClass()) {
-      case Stmt::ObjCPropertyRefExprClass:
-        K = OCM_PropertyAccess;
-        break;
-      case Stmt::ObjCSubscriptRefExprClass:
-        K = OCM_Subscript;
-        break;
-      default:
-        // FIXME: Can this ever happen?
-        K = OCM_Message;
-        break;
-      }
-
-      if (K != OCM_Message) {
-        const_cast<ObjCMethodCall *>(this)->Data
-          = ObjCMessageDataTy(POE, K).getOpaqueValue();
-        assert(getMessageKind() == K);
-        return K;
-      }
-    }
-    
-    const_cast<ObjCMethodCall *>(this)->Data
-      = ObjCMessageDataTy(0, 1).getOpaqueValue();
-    assert(getMessageKind() == OCM_Message);
-    return OCM_Message;
-  }
-
-  ObjCMessageDataTy Info = ObjCMessageDataTy::getFromOpaqueValue(Data);
-  if (!Info.getPointer())
-    return OCM_Message;
-  return static_cast<ObjCMessageKind>(Info.getInt());
-}
-
-// TODO: This implementation is copied from SemaExprObjC.cpp, needs to be
-// factored into the ObjCInterfaceDecl.
-ObjCMethodDecl *ObjCMethodCall::LookupClassMethodDefinition(Selector Sel,
-                                           ObjCInterfaceDecl *ClassDecl) const {
-  ObjCMethodDecl *Method = 0;
-  // Lookup in class and all superclasses.
-  while (ClassDecl && !Method) {
-    if (ObjCImplementationDecl *ImpDecl = ClassDecl->getImplementation())
-      Method = ImpDecl->getClassMethod(Sel);
-
-    // Look through local category implementations associated with the class.
-    if (!Method)
-      Method = ClassDecl->getCategoryClassMethod(Sel);
-
-    // Before we give up, check if the selector is an instance method.
-    // But only in the root. This matches gcc's behavior and what the
-    // runtime expects.
-    if (!Method && !ClassDecl->getSuperClass()) {
-      Method = ClassDecl->lookupInstanceMethod(Sel);
-      // Look through local category implementations associated
-      // with the root class.
-      //if (!Method)
-      //  Method = LookupPrivateInstanceMethod(Sel, ClassDecl);
-    }
-
-    ClassDecl = ClassDecl->getSuperClass();
-  }
-  return Method;
-}
-

Modified: cfe/trunk/lib/StaticAnalyzer/Core/CheckerManager.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/StaticAnalyzer/Core/CheckerManager.cpp?rev=160815&r1=160814&r2=160815&view=diff
==============================================================================
--- cfe/trunk/lib/StaticAnalyzer/Core/CheckerManager.cpp (original)
+++ cfe/trunk/lib/StaticAnalyzer/Core/CheckerManager.cpp Thu Jul 26 16:39:41 2012
@@ -14,7 +14,7 @@
 #include "clang/StaticAnalyzer/Core/CheckerManager.h"
 #include "clang/StaticAnalyzer/Core/Checker.h"
 #include "clang/StaticAnalyzer/Core/PathSensitive/CheckerContext.h"
-#include "clang/StaticAnalyzer/Core/PathSensitive/Calls.h"
+#include "clang/StaticAnalyzer/Core/PathSensitive/CallEvent.h"
 #include "clang/Analysis/ProgramPoint.h"
 #include "clang/AST/DeclBase.h"
 

Modified: cfe/trunk/lib/StaticAnalyzer/Core/ExplodedGraph.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/StaticAnalyzer/Core/ExplodedGraph.cpp?rev=160815&r1=160814&r2=160815&view=diff
==============================================================================
--- cfe/trunk/lib/StaticAnalyzer/Core/ExplodedGraph.cpp (original)
+++ cfe/trunk/lib/StaticAnalyzer/Core/ExplodedGraph.cpp Thu Jul 26 16:39:41 2012
@@ -13,7 +13,7 @@
 //===----------------------------------------------------------------------===//
 
 #include "clang/StaticAnalyzer/Core/PathSensitive/ExplodedGraph.h"
-#include "clang/StaticAnalyzer/Core/PathSensitive/Calls.h"
+#include "clang/StaticAnalyzer/Core/PathSensitive/CallEvent.h"
 #include "clang/StaticAnalyzer/Core/PathSensitive/ProgramState.h"
 #include "clang/AST/Stmt.h"
 #include "clang/AST/ParentMap.h"

Modified: cfe/trunk/lib/StaticAnalyzer/Core/ExprEngine.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/StaticAnalyzer/Core/ExprEngine.cpp?rev=160815&r1=160814&r2=160815&view=diff
==============================================================================
--- cfe/trunk/lib/StaticAnalyzer/Core/ExprEngine.cpp (original)
+++ cfe/trunk/lib/StaticAnalyzer/Core/ExprEngine.cpp Thu Jul 26 16:39:41 2012
@@ -18,7 +18,7 @@
 #include "clang/StaticAnalyzer/Core/CheckerManager.h"
 #include "clang/StaticAnalyzer/Core/BugReporter/BugType.h"
 #include "clang/StaticAnalyzer/Core/PathSensitive/AnalysisManager.h"
-#include "clang/StaticAnalyzer/Core/PathSensitive/Calls.h"
+#include "clang/StaticAnalyzer/Core/PathSensitive/CallEvent.h"
 #include "clang/StaticAnalyzer/Core/PathSensitive/ExprEngine.h"
 #include "clang/AST/CharUnits.h"
 #include "clang/AST/ParentMap.h"

Modified: cfe/trunk/lib/StaticAnalyzer/Core/ExprEngineCXX.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/StaticAnalyzer/Core/ExprEngineCXX.cpp?rev=160815&r1=160814&r2=160815&view=diff
==============================================================================
--- cfe/trunk/lib/StaticAnalyzer/Core/ExprEngineCXX.cpp (original)
+++ cfe/trunk/lib/StaticAnalyzer/Core/ExprEngineCXX.cpp Thu Jul 26 16:39:41 2012
@@ -14,7 +14,7 @@
 #include "clang/StaticAnalyzer/Core/CheckerManager.h"
 #include "clang/StaticAnalyzer/Core/PathSensitive/AnalysisManager.h"
 #include "clang/StaticAnalyzer/Core/PathSensitive/ExprEngine.h"
-#include "clang/StaticAnalyzer/Core/PathSensitive/Calls.h"
+#include "clang/StaticAnalyzer/Core/PathSensitive/CallEvent.h"
 #include "clang/AST/DeclCXX.h"
 #include "clang/AST/StmtCXX.h"
 

Modified: cfe/trunk/lib/StaticAnalyzer/Core/ExprEngineCallAndReturn.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/StaticAnalyzer/Core/ExprEngineCallAndReturn.cpp?rev=160815&r1=160814&r2=160815&view=diff
==============================================================================
--- cfe/trunk/lib/StaticAnalyzer/Core/ExprEngineCallAndReturn.cpp (original)
+++ cfe/trunk/lib/StaticAnalyzer/Core/ExprEngineCallAndReturn.cpp Thu Jul 26 16:39:41 2012
@@ -14,7 +14,7 @@
 #include "clang/Analysis/Analyses/LiveVariables.h"
 #include "clang/StaticAnalyzer/Core/CheckerManager.h"
 #include "clang/StaticAnalyzer/Core/PathSensitive/ExprEngine.h"
-#include "clang/StaticAnalyzer/Core/PathSensitive/Calls.h"
+#include "clang/StaticAnalyzer/Core/PathSensitive/CallEvent.h"
 #include "clang/AST/DeclCXX.h"
 #include "llvm/ADT/SmallSet.h"
 #include "llvm/Support/SaveAndRestore.h"

Modified: cfe/trunk/lib/StaticAnalyzer/Core/ExprEngineObjC.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/StaticAnalyzer/Core/ExprEngineObjC.cpp?rev=160815&r1=160814&r2=160815&view=diff
==============================================================================
--- cfe/trunk/lib/StaticAnalyzer/Core/ExprEngineObjC.cpp (original)
+++ cfe/trunk/lib/StaticAnalyzer/Core/ExprEngineObjC.cpp Thu Jul 26 16:39:41 2012
@@ -13,7 +13,7 @@
 
 #include "clang/AST/StmtObjC.h"
 #include "clang/StaticAnalyzer/Core/CheckerManager.h"
-#include "clang/StaticAnalyzer/Core/PathSensitive/Calls.h"
+#include "clang/StaticAnalyzer/Core/PathSensitive/CallEvent.h"
 #include "clang/StaticAnalyzer/Core/PathSensitive/ExprEngine.h"
 
 using namespace clang;

Modified: cfe/trunk/lib/StaticAnalyzer/Core/RegionStore.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/StaticAnalyzer/Core/RegionStore.cpp?rev=160815&r1=160814&r2=160815&view=diff
==============================================================================
--- cfe/trunk/lib/StaticAnalyzer/Core/RegionStore.cpp (original)
+++ cfe/trunk/lib/StaticAnalyzer/Core/RegionStore.cpp Thu Jul 26 16:39:41 2012
@@ -20,7 +20,7 @@
 #include "clang/Analysis/Analyses/LiveVariables.h"
 #include "clang/Analysis/AnalysisContext.h"
 #include "clang/Basic/TargetInfo.h"
-#include "clang/StaticAnalyzer/Core/PathSensitive/Calls.h"
+#include "clang/StaticAnalyzer/Core/PathSensitive/CallEvent.h"
 #include "clang/StaticAnalyzer/Core/PathSensitive/ProgramState.h"
 #include "clang/StaticAnalyzer/Core/PathSensitive/ProgramStateTrait.h"
 #include "clang/StaticAnalyzer/Core/PathSensitive/MemRegion.h"

Modified: cfe/trunk/lib/StaticAnalyzer/Core/Store.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/StaticAnalyzer/Core/Store.cpp?rev=160815&r1=160814&r2=160815&view=diff
==============================================================================
--- cfe/trunk/lib/StaticAnalyzer/Core/Store.cpp (original)
+++ cfe/trunk/lib/StaticAnalyzer/Core/Store.cpp Thu Jul 26 16:39:41 2012
@@ -12,7 +12,7 @@
 //===----------------------------------------------------------------------===//
 
 #include "clang/StaticAnalyzer/Core/PathSensitive/Store.h"
-#include "clang/StaticAnalyzer/Core/PathSensitive/Calls.h"
+#include "clang/StaticAnalyzer/Core/PathSensitive/CallEvent.h"
 #include "clang/StaticAnalyzer/Core/PathSensitive/ProgramState.h"
 #include "clang/AST/CharUnits.h"
 #include "clang/AST/DeclObjC.h"





More information about the cfe-commits mailing list