hubert-reinterpretcast wrote:
> PS: Sorry for misunderstanding the original issue.
Totally understandable. Thanks for following up on this.
> These changes pass all tests above:
Can you check this case with your build?
```cpp
struct A { int x; };
char q(int *);
short q(int A::*);
template <typename T>
constexpr int f(char (*)[sizeof(q(&T::x))]) { return 1; }
template <typename T>
constexpr int f(char (*)[sizeof(q(&(T::x)))]) { return 2; }
constexpr int g(char (*p)[sizeof(char)] = 0) { return f<A>(p); }
constexpr int h(char (*p)[sizeof(short)] = 0) { return f<A>(p); }
static_assert(g() == 2);
static_assert(h() == 1);
```
https://github.com/llvm/llvm-project/pull/89713
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits