TestMultipleAnnotations.cpp (633B)
1 #define MOZ_NON_TEMPORARY_CLASS __attribute__((annotate("moz_non_temporary_class"))) 2 #define MOZ_STACK_CLASS __attribute__((annotate("moz_stack_class"))) 3 4 class MOZ_NON_TEMPORARY_CLASS MOZ_STACK_CLASS TestClass {}; 5 6 TestClass foo; // expected-error {{variable of type 'TestClass' only valid on the stack}} expected-note {{value incorrectly allocated in a global variable}} 7 8 TestClass f() 9 { 10 TestClass bar; 11 return bar; 12 } 13 14 void gobbleref(const TestClass&) { } 15 16 void g() 17 { 18 gobbleref(f()); // expected-error {{variable of type 'TestClass' is not valid in a temporary}} expected-note {{value incorrectly allocated in a temporary}} 19 }