Issue 157592
Summary [libc++] ABI break: std::__set_symmetric_difference_result
Labels libc++, ABI, regression:21
Assignees
Reporter zibi2
    Compiling `std/algorithms/alg.sorting/alg.set.operations/set.symmetric.difference/ranges_set_symmetric_difference.pass.cpp` with `-Xclang -fdump-record-layouts-canonical -fsyntax-only`  against LLVM 19 and LLVM 21 will result with the following difference:


```
 0 | struct std::__set_symmetric_difference_result<class forward_iterator<int *>, int *, int *>
          0 |   class forward_iterator<int *> __in1_
 0 |     int * it_
-         4 |   int * __in2_
-         8 |   int * __out_
-           | [sizeof=12, dsize=12, align=4,
-           | nvsize=12, nvalign=4]
+         4 |     struct support::double_move_tracker tracker_
+         4 |       _Bool moved_from_
+         8 |   int * __in2_
+        12 |   int * __out_
+           | [sizeof=16, dsize=16, align=4,
+           |  nvsize=16, nvalign=4]
```

I'm in the process of getting smaller test case which demonstrate the issue.

I also see difference with: `struct std::ranges::in_in_out_result`, for example:

```
          0 | struct std::ranges::in_in_out_result<class cpp20_input_iterator<int *>, class contiguous_iterator<int *>, class contiguous_iterator<int *> >
          0 |   class cpp20_input_iterator<int *> in1
          0 |     int * it_
-         4 |   class contiguous_iterator<int *> in2
-         4 |     int * it_
-         8 | class contiguous_iterator<int *> out
+         4 |     struct support::double_move_tracker tracker_
+         4 |       _Bool moved_from_
+         8 |   class contiguous_iterator<int *> in2
 8 |     int * it_
-           | [sizeof=12, dsize=12, align=4,
- |  nvsize=12, nvalign=4]
+        12 |     struct support::double_move_tracker tracker_
+        12 |       _Bool moved_from_
+        16 |   class contiguous_iterator<int *> out
+ 16 |     int * it_
+        20 |     struct support::double_move_tracker tracker_
+        20 |       _Bool moved_from_
+           | [sizeof=24, dsize=21, align=4,
+           |  nvsize=21, nvalign=4]
```

_______________________________________________
llvm-bugs mailing list
llvm-bugs@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs

Reply via email to