llvm-project/clang
Peter Collingbourne 82e5f951fd AST: Move __va_list tag back to std conditionally on AArch64.
In post-commit feedback on D104830 Jessica Clarke pointed out that
unconditionally adding __va_list to the std namespace caused namespace
debug info to be emitted in C, which is not only inappropriate but
turned out to confuse the dtrace tool. Therefore, move __va_list back
to std only in C++ so that the correct debug info is generated. We
also considered moving __va_list to the top level unconditionally
but this would contradict the specification and be visible to AST
matchers and such, so make it conditional on the language mode.

To avoid breaking name mangling for __va_list, teach the Itanium
name mangler to always mangle it as if it were in the std namespace
when targeting ARM architectures. This logic is not needed for the
Microsoft name mangler because Microsoft platforms define va_list as
a typedef of char *.

Depends on D116773

Differential Revision: https://reviews.llvm.org/D116774
2022-02-17 11:31:40 -08:00
..
INPUTS
bindings Recommit: Compress formatting of array type names (int [4] -> int[4]) 2021-10-21 11:34:43 -07:00
cmake [CMake][Fuchsia] Only build iossim runtimes for arm64 2022-01-27 02:28:13 -08:00
docs Add support for floating-point option `ffp-eval-method` and for 2022-02-17 08:59:21 -08:00
examples clang-analyzer plugins require LLVM_ENABLE_PLUGINS also 2022-02-16 11:59:09 -05:00
include [OpenMP] Diagnose bad 'omp declare variant' that references itself. 2022-02-17 10:36:28 -08:00
lib AST: Move __va_list tag back to std conditionally on AArch64. 2022-02-17 11:31:40 -08:00
runtime Fix running orc-rt tests with LLVM_BUILD_EXTERNAL_COMPILER_RT 2022-01-25 08:27:40 -08:00
test AST: Move __va_list tag back to std conditionally on AArch64. 2022-02-17 11:31:40 -08:00
tools [OpenMP] Properly save strings when doing LTO 2022-02-16 16:40:39 -05:00
unittests [clang][dataflow] Add transfer functions for logical and, or, not. 2022-02-17 09:09:59 +00:00
utils [RISCV] Add the policy operand for nomask vector Multiply-Add IR intrinsics. 2022-02-17 09:12:46 -08:00
www [analyzer][docs][NFC] Fix some broken links and some cosmetic changes 2022-02-09 10:22:28 +01:00
.clang-format
.clang-tidy
.gitignore
CMakeLists.txt clang-analyzer plugins require LLVM_ENABLE_PLUGINS also 2022-02-16 11:59:09 -05:00
CODE_OWNERS.TXT
INSTALL.txt
LICENSE.TXT
ModuleInfo.txt
NOTES.txt
README.txt

README.txt

//===----------------------------------------------------------------------===//
// C Language Family Front-end
//===----------------------------------------------------------------------===//

Welcome to Clang.  This is a compiler front-end for the C family of languages
(C, C++, Objective-C, and Objective-C++) which is built as part of the LLVM
compiler infrastructure project.

Unlike many other compiler frontends, Clang is useful for a number of things
beyond just compiling code: we intend for Clang to be host to a number of
different source-level tools.  One example of this is the Clang Static Analyzer.

If you're interested in more (including how to build Clang) it is best to read
the relevant web sites.  Here are some pointers:

Information on Clang:             http://clang.llvm.org/
Building and using Clang:         http://clang.llvm.org/get_started.html
Clang Static Analyzer:            http://clang-analyzer.llvm.org/
Information on the LLVM project:  http://llvm.org/

If you have questions or comments about Clang, a great place to discuss them is
on the Clang development mailing list:
  http://lists.llvm.org/mailman/listinfo/cfe-dev

If you find a bug in Clang, please file it in the LLVM bug tracker:
  http://llvm.org/bugs/