From b23f20d72021548c812ddc81b91bf7ad78fe708c Mon Sep 17 00:00:00 2001 From: Nuno Lopes Date: Thu, 17 Dec 2009 10:15:49 +0000 Subject: [PATCH] revert part of my last patch, and mark only the c++ global new operator as noalias. the rest will be infered by llvm optz git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@91600 91177308-0d34-0410-b5e6-96231b3b80d8 --- docs/UsersManual.html | 4 ++-- lib/Sema/SemaDecl.cpp | 5 ----- test/CodeGenCXX/operator-new.cpp | 9 ++------- 3 files changed, 4 insertions(+), 14 deletions(-) diff --git a/docs/UsersManual.html b/docs/UsersManual.html index 7d6af988e1..13e0209414 100644 --- a/docs/UsersManual.html +++ b/docs/UsersManual.html @@ -592,8 +592,8 @@ The checks are:
-fno-assume-sane-operator-new: Don't assume that the C++'s new operator is sane.
-
This option tells the compiler to do not assume that C++'s global - and any -possibly overloaded - new operator will always return a pointer that do not +
This option tells the compiler to do not assume that C++'s global new +operator will always return a pointer that do not alias any other pointer when the function returns.
diff --git a/lib/Sema/SemaDecl.cpp b/lib/Sema/SemaDecl.cpp index ca42cac72c..ee4bd22676 100644 --- a/lib/Sema/SemaDecl.cpp +++ b/lib/Sema/SemaDecl.cpp @@ -2799,11 +2799,6 @@ Sema::ActOnFunctionDeclarator(Scope* S, Declarator& D, DeclContext* DC, D.getIdentifierLoc(), Name, R, TInfo, isStatic, isInline); - if ((Name.getCXXOverloadedOperator() == OO_New || - Name.getCXXOverloadedOperator() == OO_Array_New) && - getLangOptions().AssumeSaneOperatorNew) - NewFD->addAttr(::new (Context) MallocAttr()); - isVirtualOkay = !isStatic; } else { // Determine whether the function was written with a diff --git a/test/CodeGenCXX/operator-new.cpp b/test/CodeGenCXX/operator-new.cpp index 6becaae72c..da64fc1b2d 100644 --- a/test/CodeGenCXX/operator-new.cpp +++ b/test/CodeGenCXX/operator-new.cpp @@ -7,15 +7,10 @@ class teste { int A; teste() : A(2) {} - void* operator new(unsigned) {return ::new teste();} }; void f1() { + // CHECK-SANE: declare noalias i8* @_Znwj( + // CHECK-SANENOT: declare i8* @_Znwj( 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( -- 2.50.1