fmayer wrote:

This changed the size of the following struct:

```
#include <stdint.h>

struct A {
     bool value : 64 = false;
        uint64_t : 448;
};

static_assert(sizeof(A) == 64);
```

Used to be 64 but became 80. I bisected to this change.

```
$ llvm-project/build/bin/clang++ -target aarch64 -c foo.c
clang++: warning: treating 'c' input as 'c++' when in C++ mode, this behavior 
is deprecated [-Wdeprecated]
foo.c:4:22: warning: default member initializer for bit-field is a C++20 
extension [-Wc++20-extensions]
    4 |      bool value : 64 = false;
      |                      ^
foo.c:8:15: error: static assertion failed due to requirement 'sizeof(A) == 64'
    8 | static_assert(sizeof(A) == 64);
      |               ^~~~~~~~~~~~~~~
foo.c:8:25: note: expression evaluates to '80 == 64'
    8 | static_assert(sizeof(A) == 64);
      |               ~~~~~~~~~~^~~~~
1 warning and 1 error generated.
```


```
% clang++-19 -target aarch64 -c foo.c
clang++-19: warning: treating 'c' input as 'c++' when in C++ mode, this 
behavior is deprecated [-Wdeprecated]
foo.c:4:22: warning: default member initializer for bit-field is a C++20 
extension [-Wc++20-extensions]
    4 |      bool value : 64 = false;
      |                      ^
1 warning generated.
```


https://github.com/llvm/llvm-project/pull/126774
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to