about summary refs log tree commit diff
path: root/pkgs/development/compilers/llvm/13/clang/revert-malloc-alignment-assumption.patch
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/development/compilers/llvm/13/clang/revert-malloc-alignment-assumption.patch')
-rw-r--r--pkgs/development/compilers/llvm/13/clang/revert-malloc-alignment-assumption.patch78
1 files changed, 0 insertions, 78 deletions
diff --git a/pkgs/development/compilers/llvm/13/clang/revert-malloc-alignment-assumption.patch b/pkgs/development/compilers/llvm/13/clang/revert-malloc-alignment-assumption.patch
deleted file mode 100644
index f8e55ff7f897..000000000000
--- a/pkgs/development/compilers/llvm/13/clang/revert-malloc-alignment-assumption.patch
+++ /dev/null
@@ -1,78 +0,0 @@
---- b/include/clang/Basic/TargetInfo.h
-+++ a/include/clang/Basic/TargetInfo.h
-@@ -612,8 +612,8 @@
-   }
- 
-   /// Return the largest alignment for which a suitably-sized allocation with
-+  /// '::operator new(size_t)' is guaranteed to produce a correctly-aligned
-+  /// pointer.
--  /// '::operator new(size_t)' or 'malloc' is guaranteed to produce a
--  /// correctly-aligned pointer.
-   unsigned getNewAlign() const {
-     return NewAlign ? NewAlign : std::max(LongDoubleAlign, LongLongAlign);
-   }
---- b/lib/CodeGen/CGCall.cpp
-+++ a/lib/CodeGen/CGCall.cpp
-@@ -2048,24 +2048,6 @@
-       // 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.
---- b/test/CodeGen/alloc-fns-alignment.c
-+++ /dev/null
-@@ -1,35 +0,0 @@
--// RUN: %clang_cc1 -triple x86_64-unknown-linux-gnu -emit-llvm < %s | FileCheck %s --check-prefix=ALIGN16
--// RUN: %clang_cc1 -triple x86_64-windows-msvc      -emit-llvm < %s | FileCheck %s --check-prefix=ALIGN16
--// RUN: %clang_cc1 -triple i386-apple-darwin        -emit-llvm < %s | FileCheck %s --check-prefix=ALIGN16
--// RUN: %clang_cc1 -triple i386-unknown-linux-gnu   -emit-llvm < %s | FileCheck %s --check-prefix=ALIGN8
--// RUN: %clang_cc1 -triple x86_64-unknown-linux-gnu -fno-builtin-malloc  -emit-llvm < %s  | FileCheck %s --check-prefix=NOBUILTIN-MALLOC
--// RUN: %clang_cc1 -triple x86_64-unknown-linux-gnu -fno-builtin-calloc  -emit-llvm < %s  | FileCheck %s --check-prefix=NOBUILTIN-CALLOC
--// RUN: %clang_cc1 -triple x86_64-unknown-linux-gnu -fno-builtin-realloc -emit-llvm < %s  | FileCheck %s --check-prefix=NOBUILTIN-REALLOC
--
--typedef __SIZE_TYPE__ size_t;
--
--void *malloc(size_t);
--void *calloc(size_t, size_t);
--void *realloc(void *, size_t);
--
--void *malloc_test(size_t n) {
--  return malloc(n);
--}
--
--void *calloc_test(size_t n) {
--  return calloc(1, n);
--}
--
--void *raalloc_test(void *p, size_t n) {
--  return realloc(p, n);
--}
--
--// ALIGN16: align 16 i8* @malloc
--// ALIGN16: align 16 i8* @calloc
--// ALIGN16: align 16 i8* @realloc
--// ALIGN8: align 8 i8* @malloc
--// ALIGN8: align 8 i8* @calloc
--// ALIGN8: align 8 i8* @realloc
--// NOBUILTIN-MALLOC: declare i8* @malloc
--// NOBUILTIN-CALLOC: declare i8* @calloc
--// NOBUILTIN-REALLOC: declare i8* @realloc