diff options
author | Puyan Lotfi <puyan@puyan.org> | 2019-08-22 23:29:22 +0000 |
---|---|---|
committer | Puyan Lotfi <puyan@puyan.org> | 2019-08-22 23:29:22 +0000 |
commit | f9ea87c3e3ab0d6772b1c16a0f5734dc29791724 (patch) | |
tree | 98c515dfe7cd73d01817ca80b1becf4139339240 /include | |
parent | 3d90e05c7752c154106656286bd021d5918490a4 (diff) | |
download | clang-f9ea87c3e3ab0d6772b1c16a0f5734dc29791724.tar.gz |
[clang][ifs] New interface stubs format (llvm triple based).
After posting llvm-ifs on phabricator, I made some progress in hardening up how
I think the format for Interface Stubs should look. There are a number of
things I think the TBE format was missing (no endianness, no info about the
Object Format because it assumes ELF), so I have added those and broken off
from being as similar to the TBE schema. In a subsequent commit I can drop the
other formats.
An example of how The format will look is as follows:
--- !experimental-ifs-v1
IfsVersion: 1.0
Triple: x86_64-unknown-linux-gnu
ObjectFileFormat: ELF
Symbols:
_Z9nothiddenv: { Type: Func }
_Z10cmdVisiblev: { Type: Func }
...
The format is still marked experimental.
Differential Revision: https://reviews.llvm.org/D66446
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@369715 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include')
-rw-r--r-- | include/clang/Frontend/FrontendActions.h | 6 | ||||
-rw-r--r-- | include/clang/Frontend/FrontendOptions.h | 1 |
2 files changed, 7 insertions, 0 deletions
diff --git a/include/clang/Frontend/FrontendActions.h b/include/clang/Frontend/FrontendActions.h index 6c7bc6046f..911d820520 100644 --- a/include/clang/Frontend/FrontendActions.h +++ b/include/clang/Frontend/FrontendActions.h @@ -139,6 +139,12 @@ protected: StringRef InFile) override; }; +class GenerateInterfaceIfsExpV1Action : public GenerateInterfaceStubAction { +protected: + std::unique_ptr<ASTConsumer> CreateASTConsumer(CompilerInstance &CI, + StringRef InFile) override; +}; + class GenerateModuleFromModuleMapAction : public GenerateModuleAction { private: bool BeginSourceFileAction(CompilerInstance &CI) override; diff --git a/include/clang/Frontend/FrontendOptions.h b/include/clang/Frontend/FrontendOptions.h index d9d961ccbb..adee47342a 100644 --- a/include/clang/Frontend/FrontendOptions.h +++ b/include/clang/Frontend/FrontendOptions.h @@ -92,6 +92,7 @@ enum ActionKind { /// Generate Interface Stub Files. GenerateInterfaceYAMLExpV1, GenerateInterfaceTBEExpV1, + GenerateInterfaceIfsExpV1, /// Only execute frontend initialization. InitOnly, |