[Lldb-commits] [lldb] r224643 - [TestStaticVariables] Mark the one unmarked test let also expectedFailure.

Siva Chandra sivachandra at google.com
Fri Dec 19 14:40:05 PST 2014


Author: sivachandra
Date: Fri Dec 19 16:40:05 2014
New Revision: 224643

URL: http://llvm.org/viewvc/llvm-project?rev=224643&view=rev
Log:
[TestStaticVariables] Mark the one unmarked test let also expectedFailure.

Summary:
The test is question here is already annotated
with @expectedFailureDarwin(9980907).

This change also removes an uneccessary (and probably wrong) logic of
byssing few asserts if the compiler is not clang or llvm-gcc.

Both GCC and Clang emit incomplete debug info. Clang emits this:

< 1><0x00000026>    DW_TAG_class_type
                      DW_AT_name                  "A"
                      DW_AT_byte_size             0x00000001
                      DW_AT_decl_file             0x00000001
                      DW_AT_decl_line             0x0000001b
< 2><0x0000002e>      DW_TAG_member
                        DW_AT_name                  "g_points"
                        DW_AT_type                  <0x0000003b>
                        DW_AT_decl_file             0x00000001
                        DW_AT_decl_line             0x0000001e
                        DW_AT_external              yes(1)
                        DW_AT_declaration           yes(1)
                        DW_AT_accessibility         DW_ACCESS_public
< 1><0x0000003b>    DW_TAG_array_type
                      DW_AT_type                  <0x00000046>
< 2><0x00000040>      DW_TAG_subrange_type
                        DW_AT_type                  <0x0000007b>

Notice that the DIE at 0x40 does not specify an upperbound. This is with
Clang-3.5 and Clang ToT.

GCC emits this:

< 1><0x000000aa>    DW_TAG_class_type
                      DW_AT_name                  "A"
                      DW_AT_byte_size             0x00000001
                      DW_AT_decl_file             0x00000001
                      DW_AT_decl_line             0x0000001b
                      DW_AT_sibling               <0x000000c1>
< 2><0x000000b4>      DW_TAG_member
                        DW_AT_name                  "g_points"
                        DW_AT_decl_file             0x00000001
                        DW_AT_decl_line             0x0000001e
                        DW_AT_type                  <0x000000c1>
                        DW_AT_external              yes(1)
                        DW_AT_accessibility         DW_ACCESS_public
                        DW_AT_declaration           yes(1)
< 1><0x000000c1>    DW_TAG_array_type
                      DW_AT_type                  <0x0000007e>
                      DW_AT_sibling               <0x000000cc>
< 2><0x000000ca>      DW_TAG_subrange_type

The DIE at 0xca is missing attributes. This is with gcc-4.8.2.

Test Plan: dotest.py -C clang -P TestStaticVariables.py

Reviewers: clayborg

Reviewed By: clayborg

Subscribers: lldb-commits

Differential Revision: http://reviews.llvm.org/D6713

Modified:
    lldb/trunk/test/lang/cpp/class_static/TestStaticVariables.py

Modified: lldb/trunk/test/lang/cpp/class_static/TestStaticVariables.py
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/test/lang/cpp/class_static/TestStaticVariables.py?rev=224643&r1=224642&r2=224643&view=diff
==============================================================================
--- lldb/trunk/test/lang/cpp/class_static/TestStaticVariables.py (original)
+++ lldb/trunk/test/lang/cpp/class_static/TestStaticVariables.py Fri Dec 19 16:40:05 2014
@@ -39,6 +39,8 @@ class StaticVariableTestCase(TestBase):
         self.static_variable_python()
 
     @expectedFailureDarwin(9980907)
+    @expectedFailureClang('Clang emits incomplete debug info.')
+    @expectedFailureGcc('GCC emits incomplete debug info.')
     @python_api_test
     @dwarf_test
     def test_with_dwarf_and_python_api(self):
@@ -114,8 +116,7 @@ class StaticVariableTestCase(TestBase):
             if name == 'g_points':
                 self.assertTrue(val.GetValueType() == lldb.eValueTypeVariableStatic)
                 self.assertTrue(val.GetNumChildren() == 2)
-            elif name == 'A::g_points' and self.getCompiler() in ['clang', 'llvm-gcc']:
-                # On Mac OS X, gcc 4.2 emits the wrong debug info for A::g_points.        
+            elif name == 'A::g_points':
                 self.assertTrue(val.GetValueType() == lldb.eValueTypeVariableGlobal)
                 self.assertTrue(val.GetNumChildren() == 2)
                 child1 = val.GetChildAtIndex(1)





More information about the lldb-commits mailing list