summaryrefslogtreecommitdiffstats
path: root/clang/test/Analysis/placement-new-user-defined.cpp
blob: 47f0b459ea00859983d9c0ad5c525f31e4da534f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
// RUN: %clang_analyze_cc1 -std=c++11 %s \
// RUN:   -analyzer-checker=core \
// RUN:   -analyzer-checker=cplusplus.NewDelete \
// RUN:   -analyzer-checker=alpha.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;
}
OpenPOWER on IntegriCloud