| Index: tools/clang/plugins/tests/enum_last_value_from_c.c
 | 
| diff --git a/tools/clang/plugins/tests/enum_last_value_from_c.c b/tools/clang/plugins/tests/enum_last_value_from_c.c
 | 
| new file mode 100644
 | 
| index 0000000000000000000000000000000000000000..7fecbc0800085e9296d3c63da3d08f889ee18968
 | 
| --- /dev/null
 | 
| +++ b/tools/clang/plugins/tests/enum_last_value_from_c.c
 | 
| @@ -0,0 +1,40 @@
 | 
| +// Copyright 2014 The Chromium Authors. All rights reserved.
 | 
| +// Use of this source code is governed by a BSD-style license that can be
 | 
| +// found in the LICENSE file.
 | 
| +
 | 
| +// We warn when xxxLAST constants aren't last.
 | 
| +enum BadOne {
 | 
| +  kBadOneInvalid = -1,
 | 
| +  kBadOneRed,
 | 
| +  kBadOneGreen,
 | 
| +  kBadOneBlue,
 | 
| +  kBadOneLast = kBadOneGreen
 | 
| +};
 | 
| +
 | 
| +// We don't handle this case when called from C due to sign mismatch issues.
 | 
| +// No matter; we're not looking for this issue outside of C++.
 | 
| +enum FailOne {
 | 
| +  FAIL_ONE_INVALID,
 | 
| +  FAIL_ONE_RED,
 | 
| +  FAIL_ONE_GREEN,
 | 
| +  FAIL_ONE_BLUE = 0xfffffffc,
 | 
| +  FAIL_ONE_LAST = FAIL_ONE_GREEN
 | 
| +};
 | 
| +
 | 
| +// We don't warn when xxxLAST constants are last.
 | 
| +enum GoodOne {
 | 
| +  kGoodOneInvalid = -1,
 | 
| +  kGoodOneRed,
 | 
| +  kGoodOneGreen,
 | 
| +  kGoodOneBlue,
 | 
| +  kGoodOneLast = kGoodOneBlue
 | 
| +};
 | 
| +
 | 
| +// We don't warn when xxx_LAST constants are last.
 | 
| +enum GoodTwo {
 | 
| +  GOOD_TWO_INVALID,
 | 
| +  GOOD_TWO_RED,
 | 
| +  GOOD_TWO_GREEN,
 | 
| +  GOOD_TWO_BLUE = 0xfffffffc,
 | 
| +  GOOD_TWO_LAST = GOOD_TWO_BLUE
 | 
| +};
 | 
| 
 |