diff options
author | Alexey Samsonov <samsonov@google.com> | 2014-05-15 21:24:32 +0000 |
---|---|---|
committer | Alexey Samsonov <samsonov@google.com> | 2014-05-15 21:24:32 +0000 |
commit | b043c3d94a7d6440f7c333f835e5d1c921a679b7 (patch) | |
tree | cacfc8715ba01dcccd1911426943bdff2df40efa /include/llvm/DebugInfo | |
parent | 48ea98d1d228dfc58f9662473a4253c052c44b03 (diff) | |
download | llvm-b043c3d94a7d6440f7c333f835e5d1c921a679b7.tar.gz llvm-b043c3d94a7d6440f7c333f835e5d1c921a679b7.tar.bz2 llvm-b043c3d94a7d6440f7c333f835e5d1c921a679b7.tar.xz |
[DWARF parser] Use enums instead of bitfields in DILineInfoSpecifier.
It is more appropriate than the current situation, when one flag
(AbsoluteFilePath) is relevant only if another flag is set.
This refactoring would also simplify fetching the short function name
(stored in DW_AT_name) instead of a linkage name returned currently.
No functionality change.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@208921 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include/llvm/DebugInfo')
-rw-r--r-- | include/llvm/DebugInfo/DIContext.h | 23 |
1 files changed, 10 insertions, 13 deletions
diff --git a/include/llvm/DebugInfo/DIContext.h b/include/llvm/DebugInfo/DIContext.h index e99c029af3..3f3e3792d5 100644 --- a/include/llvm/DebugInfo/DIContext.h +++ b/include/llvm/DebugInfo/DIContext.h @@ -68,19 +68,16 @@ class DIInliningInfo { /// DILineInfoSpecifier - controls which fields of DILineInfo container /// should be filled with data. -class DILineInfoSpecifier { - const uint32_t Flags; // Or'ed flags that set the info we want to fetch. -public: - enum Specification { - FileLineInfo = 1 << 0, - AbsoluteFilePath = 1 << 1, - FunctionName = 1 << 2 - }; - // Use file/line info by default. - DILineInfoSpecifier(uint32_t flags = FileLineInfo) : Flags(flags) {} - bool needs(Specification spec) const { - return (Flags & spec) > 0; - } +struct DILineInfoSpecifier { + enum class FileLineInfoKind { None, Default, AbsoluteFilePath }; + enum class FunctionNameKind { None, LinkageName }; + + FileLineInfoKind FLIKind; + FunctionNameKind FNKind; + + DILineInfoSpecifier(FileLineInfoKind FLIKind = FileLineInfoKind::Default, + FunctionNameKind FNKind = FunctionNameKind::None) + : FLIKind(FLIKind), FNKind(FNKind) {} }; /// Selects which debug sections get dumped. |