diff options
author | Justin Bogner <mail@justinbogner.com> | 2015-02-20 02:55:22 +0000 |
---|---|---|
committer | Justin Bogner <mail@justinbogner.com> | 2015-02-20 02:55:22 +0000 |
commit | 3e18de2dbbe3dd18422441ed13c37dc07182e486 (patch) | |
tree | 6c796453b97337446034d51a1972e74a786c3369 /llvm/utils | |
parent | 66778098204e99b854bf4fcda59fae01a0eaf706 (diff) | |
download | bcm5719-llvm-3e18de2dbbe3dd18422441ed13c37dc07182e486.tar.gz bcm5719-llvm-3e18de2dbbe3dd18422441ed13c37dc07182e486.zip |
utils: Teach lldbDataFormatters about llvm::Optional
llvm-svn: 229956
Diffstat (limited to 'llvm/utils')
-rw-r--r-- | llvm/utils/lldbDataFormatters.py | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/llvm/utils/lldbDataFormatters.py b/llvm/utils/lldbDataFormatters.py index f570fb49f34..687729f61ed 100644 --- a/llvm/utils/lldbDataFormatters.py +++ b/llvm/utils/lldbDataFormatters.py @@ -15,6 +15,9 @@ def __lldb_init_module(debugger, internal_dict): debugger.HandleCommand('type synthetic add -w llvm ' '-l lldbDataFormatters.ArrayRefSynthProvider ' '-x "^llvm::ArrayRef<.+>$"') + debugger.HandleCommand('type summary add -w llvm ' + '-F lldbDataFormatters.OptionalSummaryProvider ' + '-x "^llvm::Optional<.+>$"') # Pretty printer for llvm::SmallVector/llvm::SmallVectorImpl class SmallVectorSynthProvider: @@ -86,3 +89,10 @@ class ArrayRefSynthProvider: self.data_type = self.data.GetType().GetPointeeType() self.type_size = self.data_type.GetByteSize() assert self.type_size != 0 + +def OptionalSummaryProvider(valobj, internal_dict): + if not valobj.GetChildMemberWithName('hasVal').GetValueAsUnsigned(0): + return 'None' + underlying_type = valobj.GetType().GetTemplateArgumentType(0) + storage = valobj.GetChildMemberWithName('storage') + return str(storage.Cast(underlying_type)) |