#define MOZ_MUST_USE __attribute__((annotate("moz_must_use"))) | |
#define MOZ_STACK_CLASS __attribute__((annotate("moz_stack_class"))) | |
class MOZ_MUST_USE MOZ_STACK_CLASS TestClass {}; | |
TestClass foo; // expected-error {{variable of type 'TestClass' only valid on the stack}} expected-note {{value incorrectly allocated in a global variable}} | |
TestClass f() | |
{ | |
TestClass bar; | |
return bar; | |
} | |
void g() | |
{ | |
f(); // expected-error {{Unused value of must-use type 'TestClass'}} | |
} |