placement-new-user-defined.cpp
523 Bytes
// RUN: %clang_analyze_cc1 -std=c++11 %s \
// RUN: -analyzer-checker=core \
// RUN: -analyzer-checker=cplusplus.NewDelete \
// RUN: -analyzer-checker=cplusplus.PlacementNew \
// RUN: -analyzer-output=text -verify \
// RUN: -triple x86_64-unknown-linux-gnu
// expected-no-diagnostics
#include "Inputs/system-header-simulator-cxx.h"
struct X {
static void *operator new(std::size_t sz, void *b) {
return ::operator new(sz, b);
}
long l;
};
void f() {
short buf;
X *p1 = new (&buf) X;
(void)p1;
}