| 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
|
| +};
|
|
|