Re: [Lldb-commits] [PATCH] D15576: Inspect global static const variables

2015-12-17 Thread Ewan Crawford via lldb-commits
This revision was automatically updated to reflect the committed changes.
Closed by commit rL255887: Inspect DW_AT_const_value global static const 
variables (authored by EwanCrawford).

Changed prior to commit:
  http://reviews.llvm.org/D15576?vs=43017=43119#toc

Repository:
  rL LLVM

http://reviews.llvm.org/D15576

Files:
  
lldb/trunk/packages/Python/lldbsuite/test/lang/c/global_variables/TestGlobalVariables.py
  lldb/trunk/packages/Python/lldbsuite/test/lang/c/global_variables/main.c
  lldb/trunk/source/Core/ValueObject.cpp
  lldb/trunk/source/Plugins/SymbolFile/DWARF/DWARFCompileUnit.cpp
  lldb/trunk/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp

Index: lldb/trunk/source/Core/ValueObject.cpp
===
--- lldb/trunk/source/Core/ValueObject.cpp
+++ lldb/trunk/source/Core/ValueObject.cpp
@@ -1135,6 +1135,7 @@
 if (m_data.GetByteSize())
 {
 data = m_data;
+error.Clear();
 return data.GetByteSize();
 }
 else
Index: lldb/trunk/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp
===
--- lldb/trunk/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp
+++ lldb/trunk/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp
@@ -4260,7 +4260,10 @@
 }
 else
 {
-scope = eValueTypeVariableLocal;
+if (location_is_const_value_data)
+scope = eValueTypeVariableStatic;
+else
+scope = eValueTypeVariableLocal;
 }
 }
 
Index: lldb/trunk/source/Plugins/SymbolFile/DWARF/DWARFCompileUnit.cpp
===
--- lldb/trunk/source/Plugins/SymbolFile/DWARF/DWARFCompileUnit.cpp
+++ lldb/trunk/source/Plugins/SymbolFile/DWARF/DWARFCompileUnit.cpp
@@ -815,7 +815,7 @@
 bool is_declaration = false;
 //bool is_artificial = false;
 bool has_address = false;
-bool has_location = false;
+bool has_location_or_const_value = false;
 bool is_global_or_static_variable = false;
 
 DWARFFormValue specification_die_form;
@@ -860,7 +860,8 @@
 break;
 
 case DW_AT_location:
-has_location = true;
+case DW_AT_const_value:
+has_location_or_const_value = true;
 if (tag == DW_TAG_variable)
 {
 const DWARFDebugInfoEntry* parent_die = 
die.GetParent();
@@ -1035,7 +1036,7 @@
 break;
 
 case DW_TAG_variable:
-if (name && has_location && is_global_or_static_variable)
+if (name && has_location_or_const_value && 
is_global_or_static_variable)
 {
 globals.Insert (ConstString(name), DIERef(cu_offset, 
die.GetOffset()));
 // Be sure to include variables by their mangled and demangled
Index: lldb/trunk/packages/Python/lldbsuite/test/lang/c/global_variables/main.c
===
--- lldb/trunk/packages/Python/lldbsuite/test/lang/c/global_variables/main.c
+++ lldb/trunk/packages/Python/lldbsuite/test/lang/c/global_variables/main.c
@@ -10,13 +10,14 @@
 
 int g_common_1; // Not initialized on purpose to cause it to be undefined 
external in .o file
 int g_file_global_int = 42;
+static const int g_file_static_int = 2;
 const char *g_file_global_cstr = "g_file_global_cstr";
 static const char *g_file_static_cstr = "g_file_static_cstr";
 
 extern int g_a;
 int main (int argc, char const *argv[])
 {
-g_common_1 = g_file_global_int / 2;
+g_common_1 = g_file_global_int / g_file_static_int;
 static const char *g_func_static_cstr = "g_func_static_cstr";
 printf ("%s %s\n", g_file_global_cstr, g_file_static_cstr);
 return g_file_global_int + g_a + g_common_1; // Set break point at this 
line.   break $source:$line; continue; var -global g_a -global g_global_int
Index: 
lldb/trunk/packages/Python/lldbsuite/test/lang/c/global_variables/TestGlobalVariables.py
===
--- 
lldb/trunk/packages/Python/lldbsuite/test/lang/c/global_variables/TestGlobalVariables.py
+++ 
lldb/trunk/packages/Python/lldbsuite/test/lang/c/global_variables/TestGlobalVariables.py
@@ -52,6 +52,7 @@
 # Check that GLOBAL scopes are indicated for the variables.
 self.expect("frame variable --show-types --scope --show-globals 
--no-args", VARIABLES_DISPLAYED_CORRECTLY,
 substrs = ['GLOBAL: (int) g_file_global_int = 42',
+   'STATIC: (const int) g_file_static_int = 2',
'GLOBAL: (const char *) g_file_global_cstr',
'"g_file_global_cstr"',

Re: [Lldb-commits] [PATCH] D15576: Inspect global static const variables

2015-12-17 Thread Tamas Berghammer via lldb-commits
tberghammer accepted this revision.
tberghammer added a comment.

LGTM (next time please upload the diff with full context)


Repository:
  rL LLVM

http://reviews.llvm.org/D15576



___
lldb-commits mailing list
lldb-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits