33 lines
1.1 KiB
C
33 lines
1.1 KiB
C
//------------------------------------------------------------------------------
|
|
// CLING - the C++ LLVM-based InterpreterG :)
|
|
//
|
|
// This file is dual-licensed: you can choose to license it under the University
|
|
// of Illinois Open Source License or the GNU Lesser General Public License. See
|
|
// LICENSE.TXT for details.
|
|
//------------------------------------------------------------------------------
|
|
|
|
// RUN: cat %s | %cling -Xclang -verify
|
|
// This test verifies that we get nice warning if a method on null ptr object is
|
|
// called.
|
|
// XFAIL:*
|
|
extern "C" int printf(const char* fmt, ...);
|
|
class MyClass {
|
|
private:
|
|
int a;
|
|
public:
|
|
MyClass() : a(1){}
|
|
int getA(){return a;}
|
|
};
|
|
MyClass* my = 0;
|
|
my->getA() // expected-warning {{you are about to dereference null ptr, which probably will lead to seg violation. Do you want to proceed?[y/n]}}
|
|
|
|
struct AggregatedNull {
|
|
MyClass* m;
|
|
AggregatedNull() : m(0) {}
|
|
}
|
|
|
|
AggregatedNull agrNull;
|
|
agrNull.m->getA(); // expected-warning {{you are about to dereference null ptr, which probably will lead to seg violation. Do you want to proceed?[y/n]}}
|
|
|
|
.q
|