Manual-sync mirror of chromium.googlesource.com/external/github.com/llvm/llvm-project (bare monorepo, no subtree suffix)
Find a file
Martin Storsjö 5343b20425
[libcxxabi] Don't enable -fvisibility=hidden on Windows (#207943)
This option is supported (and hence gets added by the
target_add_compile_flags_if_supported function) on Windows, but if using
dllexport, there's no point in using hidden visibility. (However if
building both static and shared libraries at the same time, it could be
beneficial to have hidden visibilty in the static libraries.)

In asserts enabled builds of Clang, building with -fvisibility=hidden
caused errors like this:

    dllexport GlobalValue must have default or protected visibility
    ptr @_ZTIv
    [...]
    fatal error: error in backend: Broken module found, compilation aborted!

Normally, combining -fvisibility=hidden with dllexport is not a problem,
but specifically for `__cxxabiv1:: __fundamental_type_info` it does make
Clang trigger an inconsistency, visible in asserts enabled builds of
Clang - see https://github.com/llvm/llvm-project/issues/207963.

This fixes Windows builds with Clang with asserts enabled, after
cb942d009a.
2026-07-07 16:16:36 +03:00
.ci CI: move libclang python bindings tests to main CI (#201677) 2026-07-06 23:13:30 -03:00
.github CI: move libclang python bindings tests to main CI (#201677) 2026-07-06 23:13:30 -03:00
bolt [BOLT] Fixed PerfScript unittest for X86 (#207408) 2026-07-06 10:44:29 +02:00
clang [X86] Sync compiler-rt cpu subtypes and vendors with libgcc and refactor internal cpu type tables in LLVM (#171172) 2026-07-07 15:03:15 +02:00
clang-tools-extra [clang-tidy][docs] Update CERT links to current SEI URLs. NFC. (#207893) 2026-07-07 18:44:36 +08:00
cmake [runtimes] Don't create shared library targets when unsupported (#205517) 2026-06-29 17:53:09 +02:00
compiler-rt [X86] Sync compiler-rt cpu subtypes and vendors with libgcc and refactor internal cpu type tables in LLVM (#171172) 2026-07-07 15:03:15 +02:00
cross-project-tests [RISCV][P-ext] Support Packed Merge. (#207110) 2026-07-06 09:29:30 +08:00
flang [FIRToMemRef] Doc collectSliceInfoFrom, getMemrefIndices, canonicalizeIndex (#207699) 2026-07-07 07:15:35 +02:00
flang-rt [Fortran] Use INTERFACE targets for options and dependencies (#193469) 2026-07-07 09:16:16 +02:00
libc [libc] Implement if_nametoindex and if_indextoname (#206082) 2026-07-07 11:26:10 +00:00
libclc [CMake] Warn when the version of CMake is older than 3.31.0 (#204203) 2026-06-29 11:16:27 -07:00
libcxx [libc++] Mark LWG3585 as resolved (#207717) 2026-07-07 19:05:10 +08:00
libcxxabi [libcxxabi] Don't enable -fvisibility=hidden on Windows (#207943) 2026-07-07 16:16:36 +03:00
libsycl [libsycl] Implement memcpy API (#205369) 2026-07-07 11:29:57 +02:00
libunwind [libunwind][aarch64] Fix auth on PAuth_LR'd frames (#206814) 2026-07-01 09:11:31 -07:00
lld [ELF,test] Fix FileCheck RUN line in gc-sections-keep-shared-start.s (#207678) 2026-07-06 21:20:57 -07:00
lldb [lldb-dap] Migrate DAP launch tests (#207023) 2026-07-07 12:04:06 +01:00
llvm [X86] Sync compiler-rt cpu subtypes and vendors with libgcc and refactor internal cpu type tables in LLVM (#171172) 2026-07-07 15:03:15 +02:00
llvm-libgcc [CMake] Warn when the version of CMake is older than 3.31.0 (#204203) 2026-06-29 11:16:27 -07:00
mlir [NFC][mlir][bufferization] Align alloc/memcpy/cast options hooks to the rest (#206966) 2026-07-07 13:15:54 +02:00
offload [Offload] run clang-format on olCreateProgram unit tests (#207757) 2026-07-06 17:35:25 +02:00
openmp [openmp][arm64ec] Fix arm64x when PER_TARGET_RUNTIME_DIR=On (#207747) 2026-07-07 13:45:15 +01:00
orc-rt [orc-rt] Fix indentation in CMakeLists.txt. NFC. (#207980) 2026-07-07 22:14:08 +10:00
polly [NFC] Fix "is is" typos (#206288) 2026-07-06 18:07:45 +00:00
runtimes [Fortran] Use INTERFACE targets for options and dependencies (#193469) 2026-07-07 09:16:16 +02:00
third-party Fix a warning and an uninitialized variable in benchmark (#200927) 2026-06-02 13:49:06 -07:00
utils [Bazel] Fixes cc048e8 (#207873) 2026-07-06 19:30:35 -05:00
.clang-format Enforce Unix line endings for Clang/LLVM/MLIR projects (#161460) 2025-10-02 06:09:12 -07:00
.clang-format-ignore [Docs] Update coding standard for TD files (#200848) 2026-06-01 21:35:58 +01:00
.clang-tidy Add default empty header filter regex to root .clang-tidy (#167386) 2025-11-11 01:36:25 +03:00
.git-blame-ignore-revs Add "Split clang/lib/CodeGen/CGBuiltin.cpp" to .git-blame-ignore-revs (#203419) 2026-06-12 12:03:28 +01:00
.gitattributes [libclang/python] Enable packaging clang python bindings (#125806) 2025-11-24 17:21:24 -08:00
.gitignore gitignore: Add emacs lock files (#205055) 2026-06-22 18:19:29 +02:00
.mailmap [mailmap] Add mailmap entry for myself (#189447) 2026-03-30 18:35:34 +00:00
CODE_OF_CONDUCT.md
CONTRIBUTING.md
LICENSE.TXT
pyproject.toml [docs] Create utils/docs (#203962) 2026-06-24 15:12:48 -04:00
README.md
SECURITY.md [SECURITY.md] add pointers to "what is a security issue" (#177372) 2026-01-22 17:19:09 -07:00

The LLVM Compiler Infrastructure

OpenSSF Scorecard OpenSSF Best Practices libc++

Welcome to the LLVM project!

This repository contains the source code for LLVM, a toolkit for the construction of highly optimized compilers, optimizers, and run-time environments.

The LLVM project has multiple components. The core of the project is itself called "LLVM". This contains all of the tools, libraries, and header files needed to process intermediate representations and convert them into object files. Tools include an assembler, disassembler, bitcode analyzer, and bitcode optimizer.

C-like languages use the Clang frontend. This component compiles C, C++, Objective-C, and Objective-C++ code into LLVM bitcode -- and from there into object files, using LLVM.

Other components include: the libc++ C++ standard library, the LLD linker, and more.

Getting the Source Code and Building LLVM

Consult the Getting Started with LLVM page for information on building and running LLVM.

For information on how to contribute to the LLVM project, please take a look at the Contributing to LLVM guide.

Getting in touch

Join the LLVM Discourse forums, Discord chat, LLVM Office Hours or Regular sync-ups.

The LLVM project has adopted a code of conduct for participants to all modes of communication within the project.