summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorPuyan Lotfi <puyan@puyan.org>2019-08-22 23:29:22 +0000
committerPuyan Lotfi <puyan@puyan.org>2019-08-22 23:29:22 +0000
commitf9ea87c3e3ab0d6772b1c16a0f5734dc29791724 (patch)
tree98c515dfe7cd73d01817ca80b1becf4139339240 /include
parent3d90e05c7752c154106656286bd021d5918490a4 (diff)
downloadclang-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.h6
-rw-r--r--include/clang/Frontend/FrontendOptions.h1
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,