[clang] [Clang][C++20] Implement constexpr std::bit_cast for bit-fields (PR #74775)

2024-05-21 Thread A. Jiang via cfe-commits
frederick-vs-ja wrote: This PR should fix #54018. https://github.com/llvm/llvm-project/pull/74775 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [Clang][C++20] Implement constexpr std::bit_cast for bit-fields (PR #74775)

2024-01-15 Thread via cfe-commits
sethp wrote: oh, @tbaederr I see you've done some overlapping work over in https://github.com/llvm/llvm-project/pull/68288 : I'll make time to review that and see what ought to happen to dovetail these patches. https://github.com/llvm/llvm-project/pull/74775

[clang] [Clang][C++20] Implement constexpr std::bit_cast for bit-fields (PR #74775)

2024-01-04 Thread via cfe-commits
@@ -6901,51 +6916,260 @@ bool HandleOperatorDeleteCall(EvalInfo , const CallExpr *E) { //===--===// namespace { -class BitCastBuffer { - // FIXME: We're going to need bit-level granularity when we support

[clang] [Clang][C++20] Implement constexpr std::bit_cast for bit-fields (PR #74775)

2024-01-04 Thread via cfe-commits
@@ -6901,51 +6916,260 @@ bool HandleOperatorDeleteCall(EvalInfo , const CallExpr *E) { //===--===// namespace { -class BitCastBuffer { - // FIXME: We're going to need bit-level granularity when we support

[clang] [Clang][C++20] Implement constexpr std::bit_cast for bit-fields (PR #74775)

2024-01-04 Thread via cfe-commits
@@ -485,16 +869,16 @@ typedef bool bool17 __attribute__((ext_vector_type(17))); typedef bool bool32 __attribute__((ext_vector_type(32))); typedef bool bool128 __attribute__((ext_vector_type(128))); -static_assert(bit_cast(bool8{1,0,1,0,1,0,1,0}) == (LITTLE_END ? 0x55 :

[clang] [Clang][C++20] Implement constexpr std::bit_cast for bit-fields (PR #74775)

2024-01-04 Thread via cfe-commits
@@ -404,29 +691,126 @@ constexpr unsigned char identity3b = __builtin_bit_cast(unsigned char, identity3 namespace test_bool { -constexpr bool test_bad_bool = bit_cast('A'); // expected-error {{must be initialized by a constant expression}} expected-note{{in call}} +//

[clang] [Clang][C++20] Implement constexpr std::bit_cast for bit-fields (PR #74775)

2024-01-04 Thread via cfe-commits
@@ -0,0 +1,82 @@ +// RUN: %clang_cc1 -verify -std=c++2a -fsyntax-only -triple x86_64-apple-macosx10.14.0 %s +// RUN: %clang_cc1 -verify -std=c++2a -fsyntax-only -triple x86_64-apple-macosx10.14.0 %s -fno-signed-char +// RUN: %clang_cc1 -verify -std=c++2a -fsyntax-only -triple

[clang] [Clang][C++20] Implement constexpr std::bit_cast for bit-fields (PR #74775)

2024-01-04 Thread via cfe-commits
@@ -404,29 +691,126 @@ constexpr unsigned char identity3b = __builtin_bit_cast(unsigned char, identity3 namespace test_bool { -constexpr bool test_bad_bool = bit_cast('A'); // expected-error {{must be initialized by a constant expression}} expected-note{{in call}} +//

[clang] [Clang][C++20] Implement constexpr std::bit_cast for bit-fields (PR #74775)

2024-01-04 Thread via cfe-commits
https://github.com/sethp edited https://github.com/llvm/llvm-project/pull/74775 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [Clang][C++20] Implement constexpr std::bit_cast for bit-fields (PR #74775)

2024-01-02 Thread via cfe-commits
sethp wrote: Happy new year! An update from my end: I've made what feels like good progress on refactoring the implementation to be a little more concise, both in terms of code and dynamic instruction count (especially for large types). There's still a little more I'd like to do there,

[clang] [Clang][C++20] Implement constexpr std::bit_cast for bit-fields (PR #74775)

2023-12-08 Thread via cfe-commits
https://github.com/sethp edited https://github.com/llvm/llvm-project/pull/74775 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [Clang][C++20] Implement constexpr std::bit_cast for bit-fields (PR #74775)

2023-12-08 Thread via cfe-commits
https://github.com/sethp edited https://github.com/llvm/llvm-project/pull/74775 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits