annotate clang-tools-extra/test/clang-reorder-fields/FieldDependencyWarningDerived.cpp @ 265:31d058e83c98 current

fix llvm again
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Sat, 14 Oct 2023 10:13:49 +0900
parents 1d019706d866
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
150
anatofuz
parents:
diff changeset
1 // RUN: clang-reorder-fields -record-name bar::Derived -fields-order z,y %s -- 2>&1 | FileCheck --check-prefix=CHECK-MESSAGES %s
anatofuz
parents:
diff changeset
2 // FIXME: clang-reorder-fields should provide -verify mode to make writing these checks
anatofuz
parents:
diff changeset
3 // easier and more accurate, for now we follow clang-tidy's approach.
anatofuz
parents:
diff changeset
4
anatofuz
parents:
diff changeset
5 namespace bar {
anatofuz
parents:
diff changeset
6 struct Base {
anatofuz
parents:
diff changeset
7 int x;
anatofuz
parents:
diff changeset
8 int p;
anatofuz
parents:
diff changeset
9 };
anatofuz
parents:
diff changeset
10
anatofuz
parents:
diff changeset
11 class Derived : public Base {
anatofuz
parents:
diff changeset
12 public:
anatofuz
parents:
diff changeset
13 Derived(long ny);
anatofuz
parents:
diff changeset
14 Derived(char nz);
anatofuz
parents:
diff changeset
15 private:
anatofuz
parents:
diff changeset
16 long y;
anatofuz
parents:
diff changeset
17 char z;
anatofuz
parents:
diff changeset
18 };
anatofuz
parents:
diff changeset
19
anatofuz
parents:
diff changeset
20 Derived::Derived(long ny) :
anatofuz
parents:
diff changeset
21 Base(),
anatofuz
parents:
diff changeset
22 y(ny),
anatofuz
parents:
diff changeset
23 z(static_cast<char>(y))
anatofuz
parents:
diff changeset
24 // CHECK-MESSAGES: :[[@LINE-1]]:3: warning: reordering field y after z makes y uninitialized when used in init expression
anatofuz
parents:
diff changeset
25 {}
anatofuz
parents:
diff changeset
26
anatofuz
parents:
diff changeset
27 Derived::Derived(char nz) :
anatofuz
parents:
diff changeset
28 Base(),
anatofuz
parents:
diff changeset
29 y(nz),
anatofuz
parents:
diff changeset
30 // Check that base class fields are correctly ignored in reordering checks
anatofuz
parents:
diff changeset
31 // x has field index 1 and so would improperly warn if this wasn't the case since the command for this file swaps field indexes 1 and 2
anatofuz
parents:
diff changeset
32 z(x)
anatofuz
parents:
diff changeset
33 // CHECK-MESSAGES-NOT: :[[@LINE-1]]:3: warning: reordering field x after z makes x uninitialized when used in init expression
anatofuz
parents:
diff changeset
34 {}
anatofuz
parents:
diff changeset
35
anatofuz
parents:
diff changeset
36 } // namespace bar