Closed Bug 1833541 Opened 2 years ago Closed 2 years ago

[clang-7] Perma /builds/worker/checkouts/gecko/third_party/libwebrtc/third_party/abseil-cpp/absl/functional/internal/any_invocable.h:201:16: error: no member named 'launder' in namespace 'std'

Categories

(Core :: WebRTC, defect, P5)

defect

Tracking

()

RESOLVED FIXED
115 Branch
Tracking Status
firefox-esr102 --- unaffected
firefox113 --- wontfix
firefox114 --- wontfix
firefox115 --- fixed

People

(Reporter: intermittent-bug-filer, Assigned: glandium)

References

(Regression)

Details

(Keywords: regression)

Attachments

(1 file)

Filed by: mh [at] glandium.org
Parsed log: https://treeherder.mozilla.org/logviewer?job_id=416057426&repo=try
Full log: https://firefox-ci-tc.services.mozilla.com/api/queue/v1/task/K3EjkwWyTIaUKPMcfxIiIQ/runs/0/artifacts/public/logs/live_backing.log


[task 2023-05-17T03:35:18.015Z] 03:35:18    ERROR -  /builds/worker/checkouts/gecko/third_party/libwebrtc/third_party/abseil-cpp/absl/functional/internal/any_invocable.h:201:16: error: no member named 'launder' in namespace 'std'
[task 2023-05-17T03:35:18.015Z] 03:35:18     INFO -    return *std::launder(reinterpret_cast<T*>(&state->storage));
[task 2023-05-17T03:35:18.015Z] 03:35:18     INFO -            ~~~~~^
[task 2023-05-17T03:35:18.015Z] 03:35:18     INFO -  1 error generated.

The commit for bug 1797157 says:

Bug 1797157 - Avoid std::launder under clang++ 5 even in c++17 mode. r=mjf

std::launder was implemented in clang 6:
https://github.com/llvm/llvm-project/commit/9180eb1f4ab96481413e93d35f35c3685de3084c

That is std::launder support in libc++, not clang. We only use libc++ on mac. On Windows, we use MSVC STL headers, and on Linux, we use libstdc++. In the latter case, std::launder is reliant on whether __builtin_launder is available, which clang only added in version 8. https://github.com/llvm/llvm-project/commit/261875054e5ebbc7b7ec17b0febecdb5e8507b4c

So in practice, this means building with clang 6 and 7 has been broken since bug 1797157 landed. I guess downstream have either applied a local patch, or nobody is actually building with clang 6 or 7...

Assignee: nobody → mh+mozilla
Keywords: regression
Regressed by: 1797157

For the record, MSVC STL uses __builtin_launder too.

Blocks: 1833958
Pushed by mh@glandium.org: https://hg.mozilla.org/integration/autoland/rev/d97636946466 Correctly check for std::launder support in abseil. r=webrtc-reviewers,ng
Status: NEW → RESOLVED
Closed: 2 years ago
Resolution: --- → FIXED
Target Milestone: --- → 115 Branch
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: