Eli Friedman | d593190 | 2011-04-04 01:18:25 +0000 | [diff] [blame^] | 1 | // RUN: %clang_cc1 -fsyntax-only -verify %s |
| 2 | // PR9615 |
| 3 | |
| 4 | struct Resource { |
| 5 | void doit(); |
| 6 | }; |
| 7 | |
| 8 | template<int x> struct Lock { |
| 9 | ~Lock() { int a[x]; } // expected-error {{declared as an array with a negative size}} |
| 10 | Resource* operator->() { return 0; } |
| 11 | }; |
| 12 | |
| 13 | struct Accessor { |
| 14 | Lock<-1> operator->(); |
| 15 | }; |
| 16 | |
| 17 | // Make sure we try to instantiate the destructor for Lock here |
| 18 | void f() { Accessor acc; acc->doit(); } // expected-note {{requested here}} |
| 19 | |