summaryrefslogtreecommitdiffstats
path: root/clang/test/CodeGenCXX/alloc-size.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'clang/test/CodeGenCXX/alloc-size.cpp')
-rw-r--r--clang/test/CodeGenCXX/alloc-size.cpp72
1 files changed, 0 insertions, 72 deletions
diff --git a/clang/test/CodeGenCXX/alloc-size.cpp b/clang/test/CodeGenCXX/alloc-size.cpp
deleted file mode 100644
index e93e231b70e..00000000000
--- a/clang/test/CodeGenCXX/alloc-size.cpp
+++ /dev/null
@@ -1,72 +0,0 @@
-// RUN: %clang_cc1 -triple x86_64-apple-darwin -emit-llvm -O0 %s -o - 2>&1 -std=c++11 | FileCheck %s
-
-namespace templates {
-void *my_malloc(int N) __attribute__((alloc_size(1)));
-void *my_calloc(int N, int M) __attribute__((alloc_size(1, 2)));
-
-struct MyType {
- int arr[4];
-};
-
-template <typename T> int callMalloc();
-
-template <typename T, int N> int callCalloc();
-
-// CHECK-LABEL: define i32 @_ZN9templates6testItEv()
-int testIt() {
- // CHECK: call i32 @_ZN9templates10callMallocINS_6MyTypeEEEiv
- // CHECK: call i32 @_ZN9templates10callCallocINS_6MyTypeELi4EEEiv
- return callMalloc<MyType>() + callCalloc<MyType, 4>();
-}
-
-// CHECK-LABEL: define linkonce_odr i32
-// @_ZN9templates10callMallocINS_6MyTypeEEEiv
-template <typename T> int callMalloc() {
- static_assert(sizeof(T) == 16, "");
- // CHECK: ret i32 16
- return __builtin_object_size(my_malloc(sizeof(T)), 0);
-}
-
-// CHECK-LABEL: define linkonce_odr i32
-// @_ZN9templates10callCallocINS_6MyTypeELi4EEEiv
-template <typename T, int N> int callCalloc() {
- static_assert(sizeof(T) * N == 64, "");
- // CHECK: ret i32 64
- return __builtin_object_size(my_malloc(sizeof(T) * N), 0);
-}
-}
-
-namespace templated_alloc_size {
-using size_t = unsigned long;
-
-// We don't need bodies for any of these, because they're only used in
-// __builtin_object_size, and that shouldn't need anything but a function
-// decl with alloc_size on it.
-template <typename T>
-T *my_malloc(size_t N = sizeof(T)) __attribute__((alloc_size(1)));
-
-template <typename T>
-T *my_calloc(size_t M, size_t N = sizeof(T)) __attribute__((alloc_size(2, 1)));
-
-template <size_t N>
-void *dependent_malloc(size_t NT = N) __attribute__((alloc_size(1)));
-
-template <size_t N, size_t M>
-void *dependent_calloc(size_t NT = N, size_t MT = M)
- __attribute__((alloc_size(1, 2)));
-
-template <typename T, size_t M>
-void *dependent_calloc2(size_t NT = sizeof(T), size_t MT = M)
- __attribute__((alloc_size(1, 2)));
-
-// CHECK-LABEL: define i32 @_ZN20templated_alloc_size6testItEv
-int testIt() {
- // 122 = 4 + 5*4 + 6 + 7*8 + 4*9
- // CHECK: ret i32 122
- return __builtin_object_size(my_malloc<int>(), 0) +
- __builtin_object_size(my_calloc<int>(5), 0) +
- __builtin_object_size(dependent_malloc<6>(), 0) +
- __builtin_object_size(dependent_calloc<7, 8>(), 0) +
- __builtin_object_size(dependent_calloc2<int, 9>(), 0);
-}
-}
OpenPOWER on IntegriCloud