summaryrefslogtreecommitdiffstats
path: root/tools/clang/plugins/tests/enum_last_value.cpp
blob: c189f23ac2f4418a03c2b3c28feb46b3523a13f0 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
// 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 warn when xxx_LAST constants aren't last.
enum BadTwo {
  BAD_TWO_INVALID,
  BAD_TWO_RED,
  BAD_TWO_GREEN,
  BAD_TWO_BLUE = 0xfffffffc,
  BAD_TWO_LAST = BAD_TWO_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
};