[qtwebengine] Fix stuff#35639
Conversation
| + //RTC_FORCE_INLINE auto operator<<(const std::string& arg) const { | ||
| + // return LogStreamer<Val<CheckArgType::kStdString, const std::string*>>(MakeVal(arg), this); | ||
| + // | ||
| + |
There was a problem hiding this comment.
| + //RTC_FORCE_INLINE auto operator<<(const std::string& arg) const { | |
| + // return LogStreamer<Val<CheckArgType::kStdString, const std::string*>>(MakeVal(arg), this); | |
| + // | |
| + |
Not worth resetting a build of qtwebengine over this
| }; | ||
|
|
||
| + | ||
| +// Base case: Before the first << argument. |
There was a problem hiding this comment.
Observations:
- Changing the return type to
autoappears OK because the code before was always returning a prvalue and there's no intended SFINAE happening there - The previous code is doing
decltype(MakeVal(an xvalue))while the new code is doingdecltype(MakeVal(an lvalue)). But the runtime code in both cases is calling with an lvalue. - You don't need C++20
remove_cvref_t; template argument deduction will never deduce a ref here, so C++14remove_const_tshould be sufficient. Probably not worth resetting the build over this..
I'm testing to see if just changing decltype(MakeVal(std::declval<U>())) to decltype(MakeVal(std::declval<U&>())) to match the runtime code fixes it
There was a problem hiding this comment.
Just remove remove_cvref_t I just used it for testing. Seems like I removed it from the enum test but forgot to remove it from the arithmetic check.
I'm testing to see if just changing decltype(MakeVal(std::declval())) to decltype(MakeVal(std::declval<U&>())) to match the runtime code fixes it
Shouldn't make a difference since the signature of MakeVal is in almost all cases RetType MakeVal(const argtype& x) and that doesn't care about U or U&. However cl is strange from time to time.
There was a problem hiding this comment.
I'm testing to see if just changing decltype(MakeVal(std::declval())) to decltype(MakeVal(std::declval<U&>())) to match the runtime code fixes it
Test failed
| }; | ||
|
|
||
| + | ||
| +// Base case: Before the first << argument. |
There was a problem hiding this comment.
I'm testing to see if just changing decltype(MakeVal(std::declval())) to decltype(MakeVal(std::declval<U&>())) to match the runtime code fixes it
Test failed
|
I don't think this fixed it. In the CI run of #35640 I'm still seeing: |

Should fix #35260
Also fixes clang-cl builds