public inbox for libstdc++-cvs@sourceware.org help / color / mirror / Atom feed
From: Jakub Jelinek <jakub@gcc.gnu.org> To: gcc-cvs@gcc.gnu.org, libstdc++-cvs@gcc.gnu.org Subject: [gcc r12-7968] libstdc++: Tweak source_location for clang trunk [PR105128] Date: Sat, 2 Apr 2022 10:50:22 +0000 (GMT) [thread overview] Message-ID: <20220402105022.374713858418@sourceware.org> (raw) https://gcc.gnu.org/g:2a82301d409d3aa0e0b3b884e4c6daeaa0486d6b commit r12-7968-g2a82301d409d3aa0e0b3b884e4c6daeaa0486d6b Author: Jakub Jelinek <jakub@redhat.com> Date: Sat Apr 2 12:49:38 2022 +0200 libstdc++: Tweak source_location for clang trunk [PR105128] Apparently clang trunk implemented __builtin_source_location(), but the using __builtin_ret_type = decltype(__builtin_source_location()); which has been added for it isn't enough, they also need the std::source_location::__impl class to be defined (but incomplete seems to be good enough) before the builtin is used. The following has been tested on godbolt with clang trunk (old version fails with error: 'std::source_location::__impl' was not found; it must be defined before '__builtin_source_location' is called and some follow-up errors), getting back to just void * instead of __builtin_ret_type and commenting out using doesn't work either and just struct __impl; before using __builtin_ret_type doesn't work too. 2022-04-02 Jakub Jelinek <jakub@redhat.com> PR libstdc++/105128 * include/std/source_location (std::source_location::__impl): Move definition before using __builtin_ret_type. Diff: --- libstdc++-v3/include/std/source_location | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/libstdc++-v3/include/std/source_location b/libstdc++-v3/include/std/source_location index 7b091bb91b7..1e261427457 100644 --- a/libstdc++-v3/include/std/source_location +++ b/libstdc++-v3/include/std/source_location @@ -43,6 +43,13 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION { private: using uint_least32_t = __UINT_LEAST32_TYPE__; + struct __impl + { + const char* _M_file_name; + const char* _M_function_name; + unsigned _M_line; + unsigned _M_column; + }; using __builtin_ret_type = decltype(__builtin_source_location()); public: @@ -76,14 +83,6 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION { return _M_impl ? _M_impl->_M_function_name : ""; } private: - struct __impl - { - const char* _M_file_name; - const char* _M_function_name; - unsigned _M_line; - unsigned _M_column; - }; - const __impl* _M_impl = nullptr; };
reply other threads:[~2022-04-02 10:50 UTC|newest] Thread overview: [no followups] expand[flat|nested] mbox.gz Atom feed
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20220402105022.374713858418@sourceware.org \ --to=jakub@gcc.gnu.org \ --cc=gcc-cvs@gcc.gnu.org \ --cc=libstdc++-cvs@gcc.gnu.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).