distinct anonymous structs remain distinct despite having similar layout.
This is already ensured by distinguishing based on their placement in the parent
struct, using the function `findAnonymousStructOrUnionIndex`.
The problem is that this function only handles anonymous structs, like
```
class Foo { struct { int a; } }
```
and not untagged structs like
```
class Foo { struct { int a; } var; }
```
Both need to be handled, and this patch fixes that. The test case ensures that this functionality doesn't regress.
Thanks to Manman Ren for review.
https://reviews.llvm.org/D22270
llvm-svn: 275460
10 lines
128 B
C++
10 lines
128 B
C++
class A {
|
|
public:
|
|
struct { int foo; } f;
|
|
struct { int foo; } g;
|
|
};
|
|
|
|
inline int useA(A &a) {
|
|
return (a.f.foo + a.g.foo);
|
|
}
|