llvm with tablegen backend for capstone disassembler
Go to file
Mitch Phillips ba31ed4725
Disable memtag sanitization for global fnptrs going into .ctors (#70186)
Looks like there's code out there that, instead of using
'__attribute__((constructor(x)))' to add constructor functions, they
just declare a global function pointer and use
'__attribute__((section('.ctors')))' instead.

Problem is, with memtag-globals, we pad the global function pointer to
be 16 bytes large. This of course means we have an 8-byte real function
pointer, then 8 bytes of zero padding, and this trips up the loader when
it processes this section.

Fixes #69939
2023-11-01 11:43:28 +01:00
.ci [ci] diff with main merge-base (#69308) 2023-10-17 11:24:43 +02:00
.github Revert "[Github] Fetch all commits in PR for code formatting checks (#69766)" 2023-10-30 12:33:35 -07:00
bolt [ADT] Rename llvm::erase_value to llvm::erase (NFC) (#70156) 2023-10-24 23:03:13 -07:00
clang Disable memtag sanitization for global fnptrs going into .ctors (#70186) 2023-11-01 11:43:28 +01:00
clang-tools-extra [clang][NFC] Refactor ElaboratedTypeKeyword 2023-10-31 20:46:07 +03:00
cmake [CMake] Switch the CMP0091 policy (MSVC_RUNTIME_LIBRARY) to the new behaviour 2023-07-17 09:59:05 +03:00
compiler-rt [windows][ASan] Fix build (#70855) 2023-10-31 14:14:58 -07:00
cross-project-tests [Dexter] Associate parser errors with correct file (#66765) 2023-09-19 14:16:17 +01:00
flang [Flang][OpenMP] Correctly handling continuation lines with Fixed Source Form Conditional Compilation Sentinels (#70309) 2023-11-01 09:05:33 +08:00
libc [libc] Add a few missing casts (#70850) 2023-10-31 12:37:09 -07:00
libclc [LIBCLC] Teach prepare-builtins how to handle text based IR (#66993) 2023-10-03 14:28:01 +02:00
libcxx [libc++][NFC] Update ignore_format for expected tests (#70869) 2023-10-31 23:56:46 +01:00
libcxxabi Revert recent changes to test_demangle.pass.cpp 2023-10-31 16:47:04 -07:00
libunwind [libc++][AIX] Add OS version to target triple 2023-10-31 16:23:05 -04:00
lld [LLD] [COFF] Recognize Itanium vtables for ICF (#70196) 2023-10-26 10:58:28 +03:00
lldb [lldb][AArch64] Add SME2's ZT0 register (#70205) 2023-11-01 10:40:25 +00:00
llvm Disable memtag sanitization for global fnptrs going into .ctors (#70186) 2023-11-01 11:43:28 +01:00
llvm-libgcc [llvm-libgcc][CMake] Refactor llvm-libgcc (#65455) 2023-09-18 22:56:03 -07:00
mlir [mlir][complex] Support Fastmath flag for complex log ops (#69798) 2023-11-01 18:58:33 +09:00
openmp [OpenMP] Introduce the KernelLaunchEnvironment as implicit argument (#70401) 2023-10-31 19:38:43 -07:00
polly [SCEV] Teach SCEVExpander to use zext nneg when possible (#70815) 2023-10-31 09:33:07 -07:00
pstl Clear release notes for 18.x 2023-07-25 13:58:49 +02:00
runtimes [libc++][Android] Support libc++ testing on Android (#69274) 2023-10-19 16:58:30 -04:00
third-party [gtest] Disable new posix::FOpen Windows implementation for now 2023-09-28 21:11:09 +02:00
utils [mlir][vector] LISH: Implement SubsetOpInterface for transfer_read/write (#70629) 2023-11-01 12:19:30 +09:00
.arcconfig
.arclint
.clang-format
.clang-tidy Add -misc-use-anonymous-namespace to .clang-tidy 2023-05-06 02:33:20 +03:00
.git-blame-ignore-revs Revert "[mlir][spirv] Add D155747 to .git-blame-ignore-revs" 2023-07-21 10:59:16 -04:00
.gitignore Revert accidental .gitignore change from 9b7763821a 2023-09-07 22:42:05 -07:00
.mailmap Add entry to mailmap 2023-04-25 23:15:07 -07:00
CODE_OF_CONDUCT.md [llvm] Add CODE_OF_CONDUCT.md (#65816) 2023-09-09 10:55:31 -07:00
CONTRIBUTING.md Update CONTRIBUTING.md to remove the not about not accepting PR 2023-09-10 15:21:06 -07:00
LICENSE.TXT
README.md [docs] Improve README: point to office hours and online sync-ups (#69323) 2023-10-27 09:45:10 +02:00
SECURITY.md

The LLVM Compiler Infrastructure

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.