diff options
Diffstat (limited to 'clang/test')
-rw-r--r-- | clang/test/CodeGenCXX/new.cpp | 2 | ||||
-rw-r--r-- | clang/test/CodeGenCXX/operator-new.cpp | 21 | ||||
-rw-r--r-- | clang/test/CodeGenCXX/static-init.cpp | 2 |
3 files changed, 23 insertions, 2 deletions
diff --git a/clang/test/CodeGenCXX/new.cpp b/clang/test/CodeGenCXX/new.cpp index f3c14a78d36..6ea12eb5f6b 100644 --- a/clang/test/CodeGenCXX/new.cpp +++ b/clang/test/CodeGenCXX/new.cpp @@ -92,7 +92,7 @@ A* t10() { struct B { }; void t11() { - // CHECK: call i8* @_Znwm + // CHECK: call noalias i8* @_Znwm // CHECK: call void @llvm.memset.i64( B* b = new B(); } diff --git a/clang/test/CodeGenCXX/operator-new.cpp b/clang/test/CodeGenCXX/operator-new.cpp new file mode 100644 index 00000000000..6becaae72cb --- /dev/null +++ b/clang/test/CodeGenCXX/operator-new.cpp @@ -0,0 +1,21 @@ +// RUN: %clang_cc1 -triple i686-pc-linux-gnu -emit-llvm -o %t-1.ll %s +// RUN: FileCheck -check-prefix SANE --input-file=%t-1.ll %s +// RUN: %clang_cc1 -triple i686-pc-linux-gnu -emit-llvm -fno-assume-sane-operator-new -o %t-2.ll %s +// RUN: FileCheck -check-prefix SANENOT --input-file=%t-2.ll %s + + +class teste { + int A; + teste() : A(2) {} + void* operator new(unsigned) {return ::new teste();} +}; + +void f1() { + new teste(); +} + +// CHECK-SANE: define linkonce_odr noalias i8* @_ZN5testenwEj( +// CHECK-SANE: declare noalias i8* @_Znwj( + +// CHECK-SANENOT: define linkonce_odr i8* @_ZN5testenwEj( +// CHECK-SANENOT: declare i8* @_Znwj( diff --git a/clang/test/CodeGenCXX/static-init.cpp b/clang/test/CodeGenCXX/static-init.cpp index 2ad6e9411f4..cbd90e78940 100644 --- a/clang/test/CodeGenCXX/static-init.cpp +++ b/clang/test/CodeGenCXX/static-init.cpp @@ -11,7 +11,7 @@ void f() { } void g() { - // CHECK: call i8* @_Znwm(i64 1) + // CHECK: call noalias i8* @_Znwm(i64 1) // CHECK: call void @_ZN1AC1Ev( static A& a = *new A; } |