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

    <tr>
        <th>Summary</th>
        <td>
            Doesnt build with Bazel
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            new issue
      </td>
    </tr>

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

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

<pre>
    Some files, like `llvm/lib/Demangle/ItaniumDemangle.cpp`, don't build with bazel.

Workspace snippet:

```
LLVM_COMMIT = "75e33f71c2dae584b13a7d1186ae0a038ba98838"

# The easiest way to calculate this for a new commit is to set it to empty and
# then run a bazel build and it will report the digest necessary to cache the
# archive and make the build reproducible.

http_archive(
    name = "llvm-raw",
    build_file_content = "# empty",
    strip_prefix = "llvm-project-" + LLVM_COMMIT,
    urls = ["https://github.com/llvm/llvm-project/archive/{commit}.tar.gz".format(commit = LLVM_COMMIT)],
    patch_cmds = ['''
    cat > utils/bazel/configure.bzl <<-"EOF"
# This file is licensed under the Apache License v2.0 with LLVM Exceptions.
# See https://llvm.org/LICENSE.txt for license information.
# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception

"""Helper macros to configure the LLVM overlay project."""

load("@bazel_tools//tools/build_defs/repo:utils.bzl", "maybe")
load(":zlib.bzl", "llvm_zlib_disable", "llvm_zlib_system")
load(":terminfo.bzl", "llvm_terminfo_disable", "llvm_terminfo_system")

# Directory of overlay files relative to WORKSPACE
DEFAULT_OVERLAY_PATH = "llvm-project-overlay"

DEFAULT_TARGETS = [
    "AArch64",
    "AMDGPU",
    "ARM",
    "AVR",
    "BPF",
    "Hexagon",
    "Lanai",
    "Mips",
    "MSP430",
    "NVPTX",
    "PowerPC",
    "RISCV",
    "Sparc",
    "SystemZ",
    "WebAssembly",
    "X86",
    "XCore",
]

def _overlay_directories(repository_ctx):
    src_path = repository_ctx.path(Label("//:WORKSPACE")).dirname
    bazel_path = repository_ctx.path(Label("//utils/bazel:configure.bzl")).dirname
    overlay_path = bazel_path.get_child("llvm-project-overlay")
    script_path = bazel_path.get_child("overlay_directories.py")

    python_bin = repository_ctx.which("python3")
    if not python_bin:
        # Windows typically just defines "python" as python3. The script itself
        # contains a check to ensure python3.
        python_bin = repository_ctx.which("python")

    if not python_bin:
        fail("Failed to find python3 binary")

    cmd = [
        python_bin,
        script_path,
        "--src",
        src_path,
        "--overlay",
        overlay_path,
        "--target",
        ".",
    ]
    exec_result = repository_ctx.execute(cmd, timeout = 20)

    if exec_result.return_code != 0:
        pass

def _llvm_configure_impl(repository_ctx):
    _overlay_directories(repository_ctx)

    # Create a starlark file with the requested LLVM targets.
    targets = repository_ctx.attr.targets
    repository_ctx.file(
        "llvm/targets.bzl",
        content = "llvm_targets = " + str(targets),
        executable = False,
    )

llvm_configure = repository_rule(
    implementation = _llvm_configure_impl,
    local = True,
    configure = True,
    attrs = {
        "targets": attr.string_list(default = DEFAULT_TARGETS),
    },
)

def llvm_disable_optional_support_deps():
    maybe(
        llvm_zlib_disable,
        name = "llvm_zlib",
    )

    maybe(
        llvm_terminfo_disable,
        name = "llvm_terminfo",
    )

def llvm_use_system_support_deps():
    maybe(
        llvm_zlib_system,
        name = "llvm_zlib",
    )

    maybe(
        llvm_terminfo_system,
        name = "llvm_terminfo",
    )
EOF
touch utils/bazel/deps_impl/BUILD
cp -R ./utils/bazel/deps_impl ./deps_impl
    ''']
)

load("@llvm-raw//utils/bazel:configure.bzl", "llvm_configure", "llvm_disable_optional_support_deps")

llvm_configure(
    name = "llvm-project",
)

# Disables optional dependencies for Support like zlib and terminfo. You may
# instead want to configure them using the macros in the corresponding bzl
# files.
llvm_disable_optional_support_deps()

```

Current errors:

```
Use --sandbox_debug to see verbose messages from the sandbox
external/llvm-project/llvm/lib/Demangle/ItaniumDemangle.cpp:110:27: error: 'enable_if_t' in namespace 'std' does not name a template type; did you mean 'enable_if'?
  110 |   template <class T> std::enable_if_t<std::is_unsigned<T>::value> print(T N) {


```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJy9WFtT4zoS_jXhRYUrsQkJD3kIuZyhNsxQkIE5--KS7U6ig28ryYTMr99u-RLfZmBqq5ZyBbsldbf6-kleEpxmT0kEbCdCUAN7wULxCmxwPQzDt2hgr0Ph4e8SIh7vQ8DXO81jkUUlxfLTFGfTyiCJB_ZEMy8TYcCOQh-Yx39CaA2Gy8Fwnv--JPJVpdwHpmKRpqAHzrw-Trzyx3xuNs_37uLb_f3dlg2cJRvY9mQMjrObjHw74DCeXnkjh0-C0Wh6zWHIh87U4zfTqTPFqQ3GtsO2B2DAlQCl2ZGfmE6Yz0M_C7kGpg9CsV0iGWcxHJmfRJHQDGk4SwG-aXqDKNUnxuPgzFUfIGYyi3Gh2W9hAJxDa44iDJmENJGaZrJA7El8DD4oxWWhhH8gBeDMlEv_IN7AcIn4qxktGCMzmQSZLzw0f32LB61Tt1g4sKc5keFfzNHDhfnIr5eSH8k89uI8x_B2KQxcP4k1xLpcQeqYbbeXKC1F6qYSduK9wR71-wd8fYnfSLtlNS82GGQyVPnC8S3OJf0VxYO9xmePAZR5FvqBwrCIxhp3_Kz2uh5MbnOHDSZLS3Np7X8iQwvdGXGcOS28SbIaytwMxsuGSinX_sH1o6Cm2KR4qkk-J1YrlmkRYtKsjdvxPxpuJ_aZBMv7GeKMBT5khNW39TkaTRxSqKGpKbxC4UOsIGBZHIA0fp6nJiA2-Qh7s61hnk-kO1u9-5BqkcTKOrN8AmBN-5GtrETu8XVzt1h9fVpZ-l2bCC9EMhHnBkJedVYPyx-XhezLuwAjQewESGRcKHZJ-rzcbb8YfS6h1KeZbnb-fIEwxW1F3JeJyaXKSGarZkfJG8gQ87HwrFUtrnMMEx5QVCP1amgs7uokMfbHp3zNwziAHX1Q2qHaxk3kkjyAKUwjfvLAfN50uDvzn1j1mvPJmC6R3UAo7oXQN6ROSkP0S64aZEQW7-FcDv2CezXclXB221JItF2CFSXZVRY1ZR0rBlY4qiZo_pdvj_96epgvVvnK5Wo9_77Zut-eV4-b-d_uwxzd2pfLBceWU8rl2_njX6vtU5UzVarg_Pkc0_T6ql09aOR--dfD976Bx_s-6vNjD_X2Yd1D_QLvfE8NqTOy4TEXPfR7gcnTQ356uHKGPQNfnx-2P3roD8kR5MOiZ-Tx7mnx3EN_SrGQ9dGNt__dM_IC3lwpiLywU5Tx-8f0uo-6SCTU6VT6aq7EnGFu4WWMwzyYBIGCKeWREhRbrq_fKfbKpm3agPRdLJsH4_zmVIvoyGDDPSqQJhFMuiKDcyDm4WzfWCiVWlWtKZk0_1PmzbLszBtl-TfSys1X8s7irT1oF5tNWKTzr1KjTEtjFx_bo_4Mtx6rW2mDX61BnfQhiV1PxH0mOR6Ef8iZ5hOdtlZix-JE19g0fJnHisNeRBwkR6zXp1QgRApP7J8MUQvGiIixoFTsqcNzVXBzLIOw8n0j9lEQ7rqsCV1wESuES9hL_FeDqmJFDaFk01z0hzvuN9vH295xUUTRGt-wH6NeuNug1IrhIsRr_ewRMHRrX1P5Rj624qMzhlIuL1W3KtTzrX9RPRhb4_X47l-MyAlDs28toalOUSkLCH3AO_iuBJWFus9NNJxpgqVoKuptWkSQZPlce9jvsRpPS4LOZIzYNEAoa49o2bDjw5Qr1alppoVWNcAVURp-WNM-XQhbSlOALyTQeYIjPubIQ77mUM8AOII8Ev6T4REAI8yAn9zmqhb0BaXPjFxraRXj5wWtSSSugf8LBxYguhRYwZDmxBb6zwFITaMS1CP6RyGlLlRSW4xylxOcMevWPFTQakoN-zX91N69zFqbIj9ChJoa_Gqm97u6JjFMsJiZqVuZNZVpCu4Mk-GL_U9uO5atrEA4z8y16HAU791QKDp_YCDyMjNamKltOjzBnFt000IUzmaLBUx0E4O7eeiqLKUTJgJfAjHTdjgXcLcVEj2gtuXC9sHRzO5ii04a_EZeF-p-JLNc8YHcyjiZggIo_69mKeH2_9EqnxX5oVHozGledJL5h85RlSxS5Mf69vvdpqjkfsouH5nVAVG1BWb0vLwmuTwnV7iyld_1A9z5GuJziO18GKrGWvQPcqLdtdu8fnddUt042L_KzPwAZhRQrNQA4VIKeKiPfewe5uD9lKuUX7JR1Jj7nepgyP5OMoqSM0_ESRp4wI481p3Dc8QyhTXGNJXifI0Yib78RGLbTJM4oHGyYcXRnAitmg0-U0vqO21e0OW_iwzloYYgZSLV76_0vitgiG1w417yjkK8bJ9fsQHDnuslOBzR1diebCaTyGyomJ5zgHe0GGravRD6k0tLZz4aEYLAgMWabTSnFwxgiI1BxM5FnhOyKUVEfmuJBKUDIgcJKkiY0oQLRy9iOpiLxFMKA-eWBSJgJ3Io8LjBlnLEWZfxhlpgzV9Q3y85DJyFHyKUYVu6ZSJ5aFFnXtfLWVRkodwsVmIfAxIWtCSnv_EQmxgySLETURPasq_ozHMD63XSRTBzghvnhl9ooUOYLXGbceNS95aS9CKT4eyPL-yEUhkBqfX4ajQdXxxm3oh7w4BPbkZj-8b2p-PhlHO6wR1NvJsJ9y9COtypWX5BSPeyhgVl4nh5IWb20LaHztCx7fHIGVsTxxle2zCegGP717sJFhp0uQit8jLsQs6MShh0iqoQdmd1HkSTkxnBiEP-PEPwLmf7133C9ejCiJ4Z1f8LLprfyg">