1 /* { dg-skip-if "no shared_ptr in C++98" { c++98_only } } */
2 /* { dg-skip-if "requires hosted libstdc++ for memory shared_ptr" { ! hostedlib } } */
4 #define _GLIBCXX_SYSHDR
7 struct A {int x; int y;};
10 std::shared_ptr<A> a; /* { dg-line declare_a } */
11 a->x = 4; /* { dg-line deref_a } */
12 /* { dg-warning "dereference of NULL" "" { target *-*-* } deref_a } */
17 /* { dg-note "\\(1\\) 'a\\.std::.+::_M_ptr' is NULL" "" { target c++14_down } declare_a } */
18 /* { dg-note "dereference of NULL 'a\\.std::.+::operator->\\(\\)'" "" { target *-*-* } deref_a } */
19 /* { dg-note "calling 'std::.+::operator->' from 'main'" "" { target *-*-* } deref_a } */
20 /* { dg-note "returning to 'main' from 'std::.+::operator->'" "" { target *-*-* } deref_a } */