diff options
Diffstat (limited to 'build/build-clang/revert-llvmorg-14-init-3651-g85ba583eba19.patch')
-rw-r--r-- | build/build-clang/revert-llvmorg-14-init-3651-g85ba583eba19.patch | 64 |
1 files changed, 64 insertions, 0 deletions
diff --git a/build/build-clang/revert-llvmorg-14-init-3651-g85ba583eba19.patch b/build/build-clang/revert-llvmorg-14-init-3651-g85ba583eba19.patch new file mode 100644 index 0000000000..03b6235eb9 --- /dev/null +++ b/build/build-clang/revert-llvmorg-14-init-3651-g85ba583eba19.patch @@ -0,0 +1,64 @@ +diff --git a/clang/lib/CodeGen/CGCall.cpp b/clang/lib/CodeGen/CGCall.cpp +index b0b64328b84e..ae0aca09ea4a 100644 +--- a/clang/lib/CodeGen/CGCall.cpp ++++ b/clang/lib/CodeGen/CGCall.cpp +@@ -2087,6 +2087,24 @@ void CodeGenModule::ConstructAttributeList(StringRef Name, + // allows it to work on indirect virtual function calls. + if (AttrOnCallSite && TargetDecl->hasAttr<NoMergeAttr>()) + FuncAttrs.addAttribute(llvm::Attribute::NoMerge); ++ ++ // Add known guaranteed alignment for allocation functions. ++ if (unsigned BuiltinID = Fn->getBuiltinID()) { ++ switch (BuiltinID) { ++ case Builtin::BIaligned_alloc: ++ case Builtin::BIcalloc: ++ case Builtin::BImalloc: ++ case Builtin::BImemalign: ++ case Builtin::BIrealloc: ++ case Builtin::BIstrdup: ++ case Builtin::BIstrndup: ++ RetAttrs.addAlignmentAttr(Context.getTargetInfo().getNewAlign() / ++ Context.getTargetInfo().getCharWidth()); ++ break; ++ default: ++ break; ++ } ++ } + } + + // 'const', 'pure' and 'noalias' attributed functions are also nounwind. +diff --git a/clang/lib/Sema/SemaDecl.cpp b/clang/lib/Sema/SemaDecl.cpp +index 506af5d1458c..5c22df026a7d 100644 +--- a/clang/lib/Sema/SemaDecl.cpp ++++ b/clang/lib/Sema/SemaDecl.cpp +@@ -15215,30 +15215,6 @@ void Sema::AddKnownFunctionAttributes(FunctionDecl *FD) { + else + FD->addAttr(CUDAHostAttr::CreateImplicit(Context, FD->getLocation())); + } +- +- // Add known guaranteed alignment for allocation functions. +- switch (BuiltinID) { +- case Builtin::BIaligned_alloc: +- case Builtin::BIcalloc: +- case Builtin::BImalloc: +- case Builtin::BImemalign: +- case Builtin::BIrealloc: +- case Builtin::BIstrdup: +- case Builtin::BIstrndup: { +- if (!FD->hasAttr<AssumeAlignedAttr>()) { +- unsigned NewAlign = Context.getTargetInfo().getNewAlign() / +- Context.getTargetInfo().getCharWidth(); +- IntegerLiteral *Alignment = IntegerLiteral::Create( +- Context, Context.MakeIntValue(NewAlign, Context.UnsignedIntTy), +- Context.UnsignedIntTy, FD->getLocation()); +- FD->addAttr(AssumeAlignedAttr::CreateImplicit( +- Context, Alignment, /*Offset=*/nullptr, FD->getLocation())); +- } +- break; +- } +- default: +- break; +- } + } + + AddKnownFunctionAttributesForReplaceableGlobalAllocationFunction(FD); |