Skip to content

Commit

Permalink
[analyzer] NFC: operator new: Fix new(nothrow) definition in tests.
Browse files Browse the repository at this point in the history
Fix the const qualifier so that the operator defined in the tests indeed does
override the default global nothrow version of new.

Differential Revision: https://reviews.llvm.org/D41408

llvm-svn: 322790
  • Loading branch information
haoNoQ committed Jan 18, 2018
1 parent 729e686 commit 868e9a1
Showing 1 changed file with 4 additions and 7 deletions.
11 changes: 4 additions & 7 deletions clang/test/Analysis/NewDelete-custom.cpp
Expand Up @@ -4,7 +4,7 @@
// RUN: %clang_analyze_cc1 -analyzer-checker=core,cplusplus.NewDelete,cplusplus.NewDeleteLeaks,unix.Malloc -std=c++11 -analyzer-config c++-allocator-inlining=true -DLEAKS=1 -DALLOCATOR_INLINING=1 -fblocks -verify %s
#include "Inputs/system-header-simulator-cxx.h"

#if !LEAKS
#if !(LEAKS && !ALLOCATOR_INLINING)
// expected-no-diagnostics
#endif

Expand All @@ -13,7 +13,7 @@ void *allocator(std::size_t size);

void *operator new[](std::size_t size) throw() { return allocator(size); }
void *operator new(std::size_t size) throw() { return allocator(size); }
void *operator new(std::size_t size, std::nothrow_t& nothrow) throw() { return allocator(size); }
void *operator new(std::size_t size, const std::nothrow_t &nothrow) throw() { return allocator(size); }
void *operator new(std::size_t, double d);

class C {
Expand Down Expand Up @@ -59,16 +59,13 @@ void testNewExpr() {

//----- Custom NoThrow placement operators
void testOpNewNoThrow() {
void *p = operator new(0, std::nothrow);
void *p = operator new(0, std::nothrow); // call is inlined, no warn
}
#if LEAKS
// expected-warning@-2{{Potential leak of memory pointed to by 'p'}}
#endif

void testNewExprNoThrow() {
int *p = new(std::nothrow) int;
}
#if LEAKS
#if LEAKS && !ALLOCATOR_INLINING
// expected-warning@-2{{Potential leak of memory pointed to by 'p'}}
#endif

Expand Down

0 comments on commit 868e9a1

Please sign in to comment.