1762bb9d0ad20320b9f97a841dce57ba5e8e48b07Richard Smith// RUN: %clang_cc1 -fsyntax-only -verify %s -std=c++11 -Wunused 2cd6f36693ed40cef8c8639c04438d865187c1f73Richard Smith 3cd6f36693ed40cef8c8639c04438d865187c1f73Richard Smith// PR9968: We used to warn that __range is unused in a dependent for-range. 4cd6f36693ed40cef8c8639c04438d865187c1f73Richard Smith 5cd6f36693ed40cef8c8639c04438d865187c1f73Richard Smithtemplate <typename T> 6cd6f36693ed40cef8c8639c04438d865187c1f73Richard Smith struct Vector { 7cd6f36693ed40cef8c8639c04438d865187c1f73Richard Smith void doIt() { 8e3499cae8e5323ac553ad56977bf1cd42b9a5a35Richard Smith int a; // expected-warning {{unused variable 'a'}} 9cd6f36693ed40cef8c8639c04438d865187c1f73Richard Smith 10dc7a4f5d7a7e3b60d4dc4a80338d7a2728540998Richard Smith for (auto& e : elements) // expected-warning {{unused variable 'e'}} 11cd6f36693ed40cef8c8639c04438d865187c1f73Richard Smith ; 12cd6f36693ed40cef8c8639c04438d865187c1f73Richard Smith } 13cd6f36693ed40cef8c8639c04438d865187c1f73Richard Smith 14cd6f36693ed40cef8c8639c04438d865187c1f73Richard Smith T elements[10]; 15cd6f36693ed40cef8c8639c04438d865187c1f73Richard Smith }; 16cd6f36693ed40cef8c8639c04438d865187c1f73Richard Smith 17cd6f36693ed40cef8c8639c04438d865187c1f73Richard Smith 18cd6f36693ed40cef8c8639c04438d865187c1f73Richard Smithint main(int, char**) { 19cd6f36693ed40cef8c8639c04438d865187c1f73Richard Smith Vector<int> vector; 20dc7a4f5d7a7e3b60d4dc4a80338d7a2728540998Richard Smith vector.doIt(); // expected-note {{here}} 21cd6f36693ed40cef8c8639c04438d865187c1f73Richard Smith} 22