X-Git-Url: http://demsky.eecs.uci.edu/git/?a=blobdiff_plain;f=include%2Fllvm%2FAnalysis%2FLibCallSemantics.h;h=e529a426ff8462d702d0dbbbe73da61b954553eb;hb=276f40540766ad0cfadbf744e0eb58499f60238a;hp=f5a9e96cbdd0d5830b48e7efef3c5d6f82a90769;hpb=b2143b6247901ae4eca2192ee134564c4f5f7853;p=oota-llvm.git diff --git a/include/llvm/Analysis/LibCallSemantics.h b/include/llvm/Analysis/LibCallSemantics.h index f5a9e96cbdd..e529a426ff8 100644 --- a/include/llvm/Analysis/LibCallSemantics.h +++ b/include/llvm/Analysis/LibCallSemantics.h @@ -27,7 +27,7 @@ namespace llvm { /// 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, @@ -130,7 +130,7 @@ namespace llvm { mutable const LibCallLocationInfo *Locations; mutable unsigned NumLocations; public: - LibCallInfo() : Impl(0), Locations(0), NumLocations(0) {} + LibCallInfo() : Impl(nullptr), Locations(nullptr), NumLocations(0) {} virtual ~LibCallInfo(); //===------------------------------------------------------------------===// @@ -162,6 +162,21 @@ namespace llvm { 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