/// standard libm functions. The location that they may be interested in is
/// an abstract location that represents errno for the current target. In
/// this case, a location for errno is anything such that the predicate
- /// returns true. On Mac OS/X, this predicate would return true if the
+ /// returns true. On Mac OS X, this predicate would return true if the
/// pointer is the result of a call to "__error()".
///
/// Locations can also be defined in a constant-sensitive way. For example,
Yes, No, Unknown
};
LocResult (*isLocation)(ImmutableCallSite CS,
- const Value *Ptr, unsigned Size);
+ const AliasAnalysis::Location &Loc);
};
/// LibCallFunctionInfo - Each record in the array of FunctionInfo structs
mutable const LibCallLocationInfo *Locations;
mutable unsigned NumLocations;
public:
- LibCallInfo() : Impl(0), Locations(0), NumLocations(0) {}
+ LibCallInfo() : Impl(nullptr), Locations(nullptr), NumLocations(0) {}
virtual ~LibCallInfo();
//===------------------------------------------------------------------===//
virtual const LibCallFunctionInfo *getFunctionInfoArray() const = 0;
};
+ enum class EHPersonality {
+ Unknown,
+ GNU_Ada,
+ GNU_C,
+ GNU_CXX,
+ GNU_ObjC,
+ MSVC_Win64SEH,
+ MSVC_CXX,
+ };
+
+ /// ClassifyEHPersonality - See if the given exception handling personality
+ /// function is one that we understand. If so, return a description of it;
+ /// otherwise return Unknown_Personality.
+ EHPersonality ClassifyEHPersonality(Value *Pers);
+
} // end namespace llvm
#endif