File tree Expand file tree Collapse file tree 5 files changed +29
-0
lines changed
Expand file tree Collapse file tree 5 files changed +29
-0
lines changed Original file line number Diff line number Diff line change 1+ #pragma once
2+
3+ #if defined(_MSC_VER )
4+ #define SOMELIB_NOINLINE __declspec(noinline)
5+ #else
6+ #define SOMELIB_NOINLINE __attribute__((noinline))
7+ #endif
8+
9+ int somenumber ();
10+
11+ SOMELIB_NOINLINE inline int somenumber () { return 13 ; }
Original file line number Diff line number Diff line change 1+ int somepart1 ();
2+ int somepart2 ();
3+ int main () { return somepart1 () - somepart2 (); }
Original file line number Diff line number Diff line change 1+ #include " somelib.h"
2+ int somepart1 () { return somenumber (); }
Original file line number Diff line number Diff line change 1+ #include " somelib.h"
2+ int somepart2 () { return somenumber (); }
Original file line number Diff line number Diff line change @@ -82,6 +82,17 @@ void obj1_reset() {
8282 // Working again based on the shared_ptr that was created after obj1 was
8383 // reset:
8484 obj2->shared_from_this ();
85+ // obj3.reset();
86+ obj2->weak_from_this ().reset ();
87+ got_bad_weak_ptr = false ;
88+ try {
89+ obj2->shared_from_this ();
90+ } catch (const std::bad_weak_ptr&) {
91+ got_bad_weak_ptr = true ;
92+ }
93+ std::cout << " got_bad_weak_ptr: " << got_bad_weak_ptr << std::endl;
94+ // std::weak_ptr<Atype> obj2_wp(obj2);
95+ // obj2->weak_from_this().swap(obj2_wp);
8596}
8697/* Expected output:
8798obj1_reset()
You can’t perform that action at this time.
0 commit comments