llvm-project/clang/lib
Puyan Lotfi 68f29dac4b [clang-ifs] Clang Interface Stubs, first version (second landing attempt).
This change reverts r363649; effectively re-landing r363626. At this point
clang::Index::CodegenNameGeneratorImpl has been refactored into
clang::AST::ASTNameGenerator. This makes it so that the previous circular link
dependency no longer exists, fixing the previous share lib
(-DBUILD_SHARED_LIBS=ON) build issue which was the reason for r363649.

Clang interface stubs (previously referred to as clang-ifsos) is a new frontend
action in clang that allows the generation of stub files that contain mangled
name info that can be used to produce a stub library. These stub libraries can
be useful for breaking up build dependencies and controlling access to a
library's internal symbols. Generation of these stubs can be invoked by:

clang -fvisibility=<visibility> -emit-interface-stubs \
                                -interface-stub-version=<interface format>

Notice that -fvisibility (along with use of visibility attributes) can be used
to control what symbols get generated. Currently the interface format is
experimental but there are a wide range of possibilities here.

Currently clang-ifs produces .ifs files that can be thought of as analogous to
object (.o) files, but just for the mangled symbol info. In a subsequent patch
I intend to add support for merging the .ifs files into one .ifs/.ifso file
that can be the input to something like llvm-elfabi to produce something like a
.so file or .dll (but without any of the code, just symbols).

Differential Revision: https://reviews.llvm.org/D60974

llvm-svn: 363948
2019-06-20 16:59:48 +00:00
..
ARCMigrate [PlistSupport] Produce a newline to end plist output files 2019-06-10 22:30:57 +00:00
AST Dump more information about expressions involving temporaries when dumping the AST to JSON. 2019-06-20 16:22:35 +00:00
ASTMatchers Revert "[clang] Fixing windows buildbot after D61552" 2019-06-20 10:34:02 +00:00
Analysis [analyzer] Fix JSON dumps for location contexts. 2019-06-19 23:33:48 +00:00
Basic [RISCV] Mark TLS as supported 2019-06-19 08:53:46 +00:00
CodeGen Revert r363116 "[X86] [ABI] Fix i386 ABI "__m64" type bug" 2019-06-19 11:34:08 +00:00
CrossTU [ASTImporter] Use llvm::Expected and Error in the importer API 2019-05-15 10:29:48 +00:00
Driver [clang-ifs] Clang Interface Stubs, first version (second landing attempt). 2019-06-20 16:59:48 +00:00
Edit Range-style std::find{,_if} -> llvm::find{,_if}. NFC 2019-03-31 08:48:19 +00:00
Format clang-format: better handle namespace macros 2019-06-06 20:06:23 +00:00
Frontend [clang-ifs] Clang Interface Stubs, first version (second landing attempt). 2019-06-20 16:59:48 +00:00
FrontendTool [clang-ifs] Clang Interface Stubs, first version (second landing attempt). 2019-06-20 16:59:48 +00:00
Headers AIX system headers need stdint.h and inttypes.h to be re-enterable 2019-06-20 15:36:32 +00:00
Index [clang][AST] ASTNameGenerator: A refactoring of CodegenNameGeneratorImpl (NFC). 2019-06-19 20:51:35 +00:00
Lex [clang][HeaderSearch] Consider all path separators equal 2019-06-06 18:49:16 +00:00
Parse Require commas to separate multiple GNU-style attributes in the same attribute list. 2019-06-18 12:57:05 +00:00
Rewrite [analyzer] [NFC] PathDiagnostic: Create PathDiagnosticPopUpPiece 2019-05-29 19:21:59 +00:00
Sema [Sema] Diagnose addr space mismatch while constructing objects 2019-06-20 16:23:28 +00:00
Serialization [clang] Add storage for APValue in ConstantExpr 2019-06-15 10:24:47 +00:00
StaticAnalyzer [analyzer] exploded-graph-rewriter: Fix escaping StringRegions. 2019-06-19 23:33:55 +00:00
Tooling [Syntax] Fix a crash when dumping empty token buffer 2019-06-19 13:56:36 +00:00
CMakeLists.txt Add Cross Translation Unit support library 2017-09-22 11:11:01 +00:00