<table border="1" cellspacing="0" cellpadding="8">
    <tr>
        <th>Issue</th>
        <td>
            <a href=https://github.com/llvm/llvm-project/issues/142248>142248</a>
        </td>
    </tr>

    <tr>
        <th>Summary</th>
        <td>
            Clang does not warn on undefined shift in templated member function when using conditional expression
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            clang
      </td>
    </tr>

    <tr>
      <th>Assignees</th>
      <td>
      </td>
    </tr>

    <tr>
      <th>Reporter</th>
      <td>
          pkennedyTT
      </td>
    </tr>
</table>

<pre>
    As title says, clang doesn't warn about UB due to shifting beyond the width of type in specific circumstances.

Clang version:
Apple clang version 16.0.0 (clang-1600.0.26.6)
Target: arm64-apple-darwin23.6.0

Compile flags: `-std=c++20 -Wall -Wextra -Wshift-count-overflow -pedantic`

```
#include <iostream>
#include <type_traits>

template <typename T>
class Foo {
public:
    T foo() {
        return std::is_same_v<T, uint64_t> ? (1<<32): 0;  // No warning here
    }   
};

template <typename T>
T bar() {
    return std::is_same_v<T, uint64_t> ? (1<<32): 0;  // Warning here
}

int main()
{
    Foo<uint64_t> f;
    std::cout << f.foo() << " " << bar<uint64_t>() << "\n";
}
```
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJysVEGTqygQ_jXtpUsLwZjJwYNJXo57ytYcp1CbhF0ECzB5-fdbqDP7Xs1hL2upYDd2f1_TfDIEfbNEDeyOsDtnco5355vpb7KWhtf1mnVueDVtwKijIQzyFYCfsDfS3nBwFCzwfcSn9BZl5-aIfx5xmAmjw3DXKmp7w45ezg4Y74RPPcQ7OoXxNRFqi2GiXivdY699P48hSttTKIC1wNrTkuZBPmhnQSRTO02GtvybA8u6YAVD4G-LPS9rxgpW8LqogR-AtVfpbxRBtCj9WFe5TEHyQfqntlwUdcG2fG6ctCFURt5CWg41y0McQJx74EfgR84wf5fGYP5OP6OXmL8vNPPezTbm7kFeGffEfKJB2qh7qLfYabLerAUutO3NPBCCOGkXoic5gvjxzZfK9BG91DFsbtZGGicj45ffypHwurp7I0PAi3MI-yOwdpo7o_u1dIiIV1TOAX8DfthW4HZ5irO3uLBtQbQ6fAQ50scDxOma9nzWNtbVRwTxA0FcUrlLECcQJ8FTmUWLDMQREfgF-AX_cEtbpAa4k6ctFezP6c1a2J9BHP-b0RU76b8h_t_Rvv8ONaFboGkbcZTarggWzyeGi3MgTr8mUiuj5PxC1qdDsWZGVfxS_dUEnK_P-pm4_hbz22rYnWwa1tqtMD9bKxsaMRzEQWbUlPvqra7Z7nDI7k3dKyVKVVHZHcpBVGl2YKokMQzVXnWZbjjjO7YTJRNMlIeipFrV-33PVVcqpTqoGI1Sm8KYx1g4f8t0CDM1ZcV59ZYZ2ZEJi4xwvpzCBeo58036Ie_mW4CKGR1i-DfEIirN6UtM0LpNS5zF2Q6ktKVhFZIkFp99MuBIY0ce1Wz7mCTgeSeLc0g72Ds76GSUBunn5Ckkkchmb5p7jFM61-ue33S8z13RuxH4JWHahnzy7i_qI_DLwjEAv2w0Hw3_JwAA__8P0o23">