-
Notifications
You must be signed in to change notification settings - Fork 15.5k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Fix uses of __cpp_lib_constexpr_string #18890
Fix uses of __cpp_lib_constexpr_string #18890
Conversation
Looks like there's a conflict -- can you rebase / resolve? |
looks like the commit that introduced this was rolled back f58849b maybe a googler can comment on if that's going to come back out, or if this patch is irrelevant |
The change was submitted again. |
The intent of these checks was that if the C++20 version of this feature are enabled to execute the top codepath. libstdc++ 12 defines this feature as: ```cpp // in: /usr/include/c++/12/bits/basic_string.h #ifdef __cpp_lib_is_constant_evaluated // Support P0980R1 in C++20. # define __cpp_lib_constexpr_string 201907L #elif __cplusplus >= 201703L && _GLIBCXX_HAVE_IS_CONSTANT_EVALUATED // Support P0426R1 changes to char_traits in C++17. # define __cpp_lib_constexpr_string 201611L #endif ``` So this codepath was always being hit even with -std=c++17 and then resulted in a failure because the string wasn't actually constinit. This matches the other use of this feature check in `inlined_string_field.h`
91bb279
to
edb4f5f
Compare
reabsed! |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Approving for tests
The intent of these checks was that if the C++20 version of this feature are enabled to execute the top codepath. libstdc++ 12 defines this feature as: ```cpp // in: /usr/include/c++/12/bits/basic_string.h #ifdef __cpp_lib_is_constant_evaluated // Support P0980R1 in C++20. # define __cpp_lib_constexpr_string 201907L #elif __cplusplus >= 201703L && _GLIBCXX_HAVE_IS_CONSTANT_EVALUATED // Support P0426R1 changes to char_traits in C++17. # define __cpp_lib_constexpr_string 201611L #endif ``` So this codepath was always being hit even with -std=c++17 and then resulted in a failure because the string wasn't actually constinit. This matches the other use of this feature check in `inlined_string_field.h` Closes #18890 COPYBARA_INTEGRATE_REVIEW=#18890 from keith:ks/fix-uses-of-__cpp_lib_constexpr_string edb4f5f FUTURE_COPYBARA_INTEGRATE_REVIEW=#18890 from keith:ks/fix-uses-of-__cpp_lib_constexpr_string edb4f5f PiperOrigin-RevId: 696299666
The intent of these checks was that if the C++20 version of this feature are enabled to execute the top codepath. libstdc++ 12 defines this feature as: ```cpp // in: /usr/include/c++/12/bits/basic_string.h #ifdef __cpp_lib_is_constant_evaluated // Support P0980R1 in C++20. # define __cpp_lib_constexpr_string 201907L #elif __cplusplus >= 201703L && _GLIBCXX_HAVE_IS_CONSTANT_EVALUATED // Support P0426R1 changes to char_traits in C++17. # define __cpp_lib_constexpr_string 201611L #endif ``` So this codepath was always being hit even with -std=c++17 and then resulted in a failure because the string wasn't actually constinit. This matches the other use of this feature check in `inlined_string_field.h` Closes #18890 COPYBARA_INTEGRATE_REVIEW=#18890 from keith:ks/fix-uses-of-__cpp_lib_constexpr_string edb4f5f FUTURE_COPYBARA_INTEGRATE_REVIEW=#18890 from keith:ks/fix-uses-of-__cpp_lib_constexpr_string edb4f5f PiperOrigin-RevId: 696299666
The intent of these checks was that if the C++20 version of this feature
are enabled to execute the top codepath. libstdc++ 12 defines this
feature as:
So this codepath was always being hit even with -std=c++17 and then
resulted in a failure because the string wasn't actually constinit. This
matches the other use of this feature check in
inlined_string_field.h