diff options
author | Adrian Prantl <aprantl@apple.com> | 2016-03-31 23:56:58 +0000 |
---|---|---|
committer | Adrian Prantl <aprantl@apple.com> | 2016-03-31 23:56:58 +0000 |
commit | b939a257070d71eee3c18415ca6104731c7923a6 (patch) | |
tree | 19c0a55e59c2cab8bc8849d68af08dd624eb0dd0 /llvm/lib/IR/DebugInfoMetadata.cpp | |
parent | 649159df3cdd797f323eb8f198e6e77816ba93ef (diff) | |
download | bcm5719-llvm-b939a257070d71eee3c18415ca6104731c7923a6.tar.gz bcm5719-llvm-b939a257070d71eee3c18415ca6104731c7923a6.zip |
Move the DebugEmissionKind enum from DIBuilder into DICompileUnit.
This mostly cosmetic patch moves the DebugEmissionKind enum from DIBuilder
into DICompileUnit. DIBuilder is not the right place for this enum to live
in — a metadata consumer should not have to include DIBuilder.h.
I also added a Verifier check that checks that the emission kind of a
DICompileUnit is actually legal.
http://reviews.llvm.org/D18612
<rdar://problem/25427165>
llvm-svn: 265077
Diffstat (limited to 'llvm/lib/IR/DebugInfoMetadata.cpp')
-rw-r--r-- | llvm/lib/IR/DebugInfoMetadata.cpp | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/llvm/lib/IR/DebugInfoMetadata.cpp b/llvm/lib/IR/DebugInfoMetadata.cpp index 04eeb922118..ec0b8bb86ac 100644 --- a/llvm/lib/IR/DebugInfoMetadata.cpp +++ b/llvm/lib/IR/DebugInfoMetadata.cpp @@ -307,6 +307,24 @@ DICompileUnit *DICompileUnit::getImpl( Storage); } +Optional<DICompileUnit::DebugEmissionKind> +DICompileUnit::getEmissionKind(StringRef Str) { + return StringSwitch<Optional<DebugEmissionKind>>(Str) + .Case("NoDebug", NoDebug) + .Case("FullDebug", FullDebug) + .Case("LineTablesOnly", LineTablesOnly) + .Default(None); +} + +const char *DICompileUnit::EmissionKindString(DebugEmissionKind EK) { + switch (EK) { + case NoDebug: return "NoDebug"; + case FullDebug: return "FullDebug"; + case LineTablesOnly: return "LineTablesOnly"; + } + return nullptr; +} + DISubprogram *DILocalScope::getSubprogram() const { if (auto *Block = dyn_cast<DILexicalBlockBase>(this)) return Block->getScope()->getSubprogram(); |