summaryrefslogtreecommitdiffstats
path: root/build/clang-plugin/tests/TestMultipleAnnotations.cpp
blob: aa927259db06d5b85c6b7f0c35252907ab23c709 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#define MOZ_MUST_USE_TYPE __attribute__((annotate("moz_must_use_type")))
#define MOZ_STACK_CLASS __attribute__((annotate("moz_stack_class")))

class MOZ_MUST_USE_TYPE 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'}}
}