aboutsummaryrefslogtreecommitdiff
path: root/lldb/test/API/lang/cpp/function-local-class/main.cpp
blob: 4f492cc3cf85f8459087e8b9189f3b9f6e8b2ec4 (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
40
41
42
43
44
// These declarations have intentionally the same name as the function-local
// class. LLDB should never pull in these definitions as this test only inspects
// the classes defined in the function below.
struct WithMember {
  float false_def;
};
typedef struct {
  float false_def;
} TypedefUnnamed;
struct ForwardConflict {
  float false_def;
};
ForwardConflict conflict1;
WithMember conflict2;
struct {
  float false_def;
} unnamed;

int main() {
  struct WithMember {
    int i;
  };
  typedef struct {
    int a;
  } TypedefUnnamed;
  typedef struct {
    int b;
  } TypedefUnnamed2;
  struct Forward;
  struct ForwardConflict;

  WithMember m = {1};
  TypedefUnnamed typedef_unnamed = {2};
  TypedefUnnamed2 typedef_unnamed2 = {3};
  struct {
    int i;
  } unnamed = {4};
  struct {
    int j;
  } unnamed2 = {5};
  Forward *fwd = nullptr;
  ForwardConflict *fwd_conflict = nullptr;
  return 0; // break here
}