summaryrefslogtreecommitdiff
path: root/clang/test/SemaCXX/operator-arrow-temporary.cpp
blob: 8e79609342b51c7eb3d8ad5d92a6db33aaa5c45d (about) (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
// RUN: %clang_cc1 -fsyntax-only -verify %s
// PR9615

struct Resource {
  void doit();
};

template<int x> struct Lock {
  ~Lock() { int a[x]; } // expected-error {{declared as an array with a negative size}}
  Resource* operator->() { return 0; }
};

struct Accessor {
  Lock<-1> operator->();
};

// Make sure we try to instantiate the destructor for Lock here
void f() { Accessor acc; acc->doit(); } // expected-note {{requested here}}