Update clang to r339409b.
Change-Id: Ied8a188bb072c40035320acedc86164b66d920af
diff --git a/linux-x64/clang/include/llvm/IR/Function.h b/linux-x64/clang/include/llvm/IR/Function.h
index c8d6b07..1b91537 100644
--- a/linux-x64/clang/include/llvm/IR/Function.h
+++ b/linux-x64/clang/include/llvm/IR/Function.h
@@ -120,7 +120,7 @@
/// function is automatically inserted into the end of the function list for
/// the module.
///
- Function(FunctionType *Ty, LinkageTypes Linkage,
+ Function(FunctionType *Ty, LinkageTypes Linkage, unsigned AddrSpace,
const Twine &N = "", Module *M = nullptr);
public:
@@ -134,10 +134,24 @@
const Function &getFunction() const { return *this; }
static Function *Create(FunctionType *Ty, LinkageTypes Linkage,
- const Twine &N = "", Module *M = nullptr) {
- return new Function(Ty, Linkage, N, M);
+ unsigned AddrSpace, const Twine &N = "",
+ Module *M = nullptr) {
+ return new Function(Ty, Linkage, AddrSpace, N, M);
}
+ // TODO: remove this once all users have been updated to pass an AddrSpace
+ static Function *Create(FunctionType *Ty, LinkageTypes Linkage,
+ const Twine &N = "", Module *M = nullptr) {
+ return new Function(Ty, Linkage, static_cast<unsigned>(-1), N, M);
+ }
+
+ /// Creates a new function and attaches it to a module.
+ ///
+ /// Places the function in the program address space as specified
+ /// by the module's data layout.
+ static Function *Create(FunctionType *Ty, LinkageTypes Linkage,
+ const Twine &N, Module &M);
+
// Provide fast operand accessors.
DECLARE_TRANSPARENT_OPERAND_ACCESSORS(Value);
@@ -557,7 +571,7 @@
/// True if this function needs an unwind table.
bool needsUnwindTableEntry() const {
- return hasUWTable() || !doesNotThrow();
+ return hasUWTable() || !doesNotThrow() || hasPersonalityFn();
}
/// Determine if the function returns a structure through first