[Lldb-commits] [lldb] r156872 - in /lldb/branches/apple/python-GIL: ./ include/lldb/Symbol/Type.h source/Commands/CommandObjectTarget.cpp source/Core/Address.cpp source/Symbol/Symbol.cpp source/Symbol/Type.cpp test/lang/objc/foundation/TestObjCMethods2.py test/lang/objc/objc-class-method/TestObjCClassMethod.py test/lang/objc/objc-new-syntax/TestObjCNewSyntax.py

Filipe Cabecinhas me at filcab.net
Tue May 15 15:42:42 PDT 2012


Author: filcab
Date: Tue May 15 17:42:42 2012
New Revision: 156872

URL: http://llvm.org/viewvc/llvm-project?rev=156872&view=rev
Log:
Merge changes from ToT trunk.

Modified:
    lldb/branches/apple/python-GIL/   (props changed)
    lldb/branches/apple/python-GIL/include/lldb/Symbol/Type.h
    lldb/branches/apple/python-GIL/source/Commands/CommandObjectTarget.cpp
    lldb/branches/apple/python-GIL/source/Core/Address.cpp
    lldb/branches/apple/python-GIL/source/Symbol/Symbol.cpp
    lldb/branches/apple/python-GIL/source/Symbol/Type.cpp
    lldb/branches/apple/python-GIL/test/lang/objc/foundation/TestObjCMethods2.py
    lldb/branches/apple/python-GIL/test/lang/objc/objc-class-method/TestObjCClassMethod.py
    lldb/branches/apple/python-GIL/test/lang/objc/objc-new-syntax/TestObjCNewSyntax.py

Propchange: lldb/branches/apple/python-GIL/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Tue May 15 17:42:42 2012
@@ -1 +1 @@
-/lldb/trunk:156467-156797
+/lldb/trunk:156467-156855

Modified: lldb/branches/apple/python-GIL/include/lldb/Symbol/Type.h
URL: http://llvm.org/viewvc/llvm-project/lldb/branches/apple/python-GIL/include/lldb/Symbol/Type.h?rev=156872&r1=156871&r2=156872&view=diff
==============================================================================
--- lldb/branches/apple/python-GIL/include/lldb/Symbol/Type.h (original)
+++ lldb/branches/apple/python-GIL/include/lldb/Symbol/Type.h Tue May 15 17:42:42 2012
@@ -138,6 +138,15 @@
         return m_encoding_uid_type != eEncodingInvalid;
     }
 
+    bool
+    IsTypedef ()
+    {
+        return m_encoding_uid_type == eEncodingIsTypedefUID;
+    }
+    
+    lldb::TypeSP
+    GetTypedefType();
+
     void
     SetByteSize(uint32_t byte_size);
 

Modified: lldb/branches/apple/python-GIL/source/Commands/CommandObjectTarget.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/branches/apple/python-GIL/source/Commands/CommandObjectTarget.cpp?rev=156872&r1=156871&r2=156872&view=diff
==============================================================================
--- lldb/branches/apple/python-GIL/source/Commands/CommandObjectTarget.cpp (original)
+++ lldb/branches/apple/python-GIL/source/Commands/CommandObjectTarget.cpp Tue May 15 17:42:42 2012
@@ -1361,6 +1361,29 @@
     return false;
 }
 
+static void
+DumpAddress (ExecutionContextScope *exe_scope, const Address &so_addr, bool verbose, Stream &strm)
+{
+    strm.IndentMore();
+    strm.Indent ("    Address: ");
+    so_addr.Dump (&strm, exe_scope, Address::DumpStyleModuleWithFileAddress);
+    strm.PutCString (" (");
+    so_addr.Dump (&strm, exe_scope, Address::DumpStyleSectionNameOffset);
+    strm.PutCString (")\n");
+    strm.Indent ("    Summary: ");
+    const uint32_t save_indent = strm.GetIndentLevel ();
+    strm.SetIndentLevel (save_indent + 13);
+    so_addr.Dump (&strm, exe_scope, Address::DumpStyleResolvedDescription);
+    strm.SetIndentLevel (save_indent);
+    // Print out detailed address information when verbose is enabled
+    if (verbose)
+    {
+        strm.EOL();
+        so_addr.Dump (&strm, exe_scope, Address::DumpStyleDetailedSymbolContext);
+    }
+    strm.IndentLess();
+}
+
 static bool
 LookupAddressInModule (CommandInterpreter &interpreter, 
                        Stream &strm, 
@@ -1390,24 +1413,25 @@
         }
         
         ExecutionContextScope *exe_scope = interpreter.GetExecutionContext().GetBestExecutionContextScope();
-        strm.IndentMore();
-        strm.Indent ("    Address: ");
-        so_addr.Dump (&strm, exe_scope, Address::DumpStyleModuleWithFileAddress);
-        strm.PutCString (" (");
-        so_addr.Dump (&strm, exe_scope, Address::DumpStyleSectionNameOffset);
-        strm.PutCString (")\n");
-        strm.Indent ("    Summary: ");
-        const uint32_t save_indent = strm.GetIndentLevel ();
-        strm.SetIndentLevel (save_indent + 13);
-        so_addr.Dump (&strm, exe_scope, Address::DumpStyleResolvedDescription);
-        strm.SetIndentLevel (save_indent);
-        // Print out detailed address information when verbose is enabled
-        if (verbose)
-        {
-            strm.EOL();
-            so_addr.Dump (&strm, exe_scope, Address::DumpStyleDetailedSymbolContext);
-        }
-        strm.IndentLess();
+        DumpAddress (exe_scope, so_addr, verbose, strm);
+//        strm.IndentMore();
+//        strm.Indent ("    Address: ");
+//        so_addr.Dump (&strm, exe_scope, Address::DumpStyleModuleWithFileAddress);
+//        strm.PutCString (" (");
+//        so_addr.Dump (&strm, exe_scope, Address::DumpStyleSectionNameOffset);
+//        strm.PutCString (")\n");
+//        strm.Indent ("    Summary: ");
+//        const uint32_t save_indent = strm.GetIndentLevel ();
+//        strm.SetIndentLevel (save_indent + 13);
+//        so_addr.Dump (&strm, exe_scope, Address::DumpStyleResolvedDescription);
+//        strm.SetIndentLevel (save_indent);
+//        // Print out detailed address information when verbose is enabled
+//        if (verbose)
+//        {
+//            strm.EOL();
+//            so_addr.Dump (&strm, exe_scope, Address::DumpStyleDetailedSymbolContext);
+//        }
+//        strm.IndentLess();
         return true;
     }
     
@@ -1415,7 +1439,7 @@
 }
 
 static uint32_t
-LookupSymbolInModule (CommandInterpreter &interpreter, Stream &strm, Module *module, const char *name, bool name_is_regex)
+LookupSymbolInModule (CommandInterpreter &interpreter, Stream &strm, Module *module, const char *name, bool name_is_regex, bool verbose)
 {
     if (module)
     {
@@ -1452,12 +1476,17 @@
                     DumpFullpath (strm, &module->GetFileSpec(), 0);
                     strm.PutCString(":\n");
                     strm.IndentMore ();
-                    Symtab::DumpSymbolHeader (&strm);
+                    //Symtab::DumpSymbolHeader (&strm);
                     for (i=0; i < num_matches; ++i)
                     {
                         Symbol *symbol = symtab->SymbolAtIndex(match_indexes[i]);
-                        strm.Indent ();
-                        symbol->Dump (&strm, interpreter.GetExecutionContext().GetTargetPtr(), i);
+                        DumpAddress (interpreter.GetExecutionContext().GetBestExecutionContextScope(),
+                                     symbol->GetAddress(),
+                                     verbose,
+                                     strm);
+
+//                        strm.Indent ();
+//                        symbol->Dump (&strm, interpreter.GetExecutionContext().GetTargetPtr(), i);
                     }
                     strm.IndentLess ();
                     return num_matches;
@@ -1470,7 +1499,7 @@
 
 
 static void
-DumpSymbolContextList (CommandInterpreter &interpreter, Stream &strm, SymbolContextList &sc_list, bool prepend_addr, bool verbose)
+DumpSymbolContextList (ExecutionContextScope *exe_scope, Stream &strm, SymbolContextList &sc_list, bool verbose)
 {
     strm.IndentMore ();
     uint32_t i;
@@ -1481,21 +1510,6 @@
         SymbolContext sc;
         if (sc_list.GetContextAtIndex(i, sc))
         {
-            strm.Indent();
-            ExecutionContextScope *exe_scope = interpreter.GetExecutionContext().GetBestExecutionContextScope ();
-            
-            if (prepend_addr)
-            {
-                if (sc.line_entry.range.GetBaseAddress().IsValid())
-                {
-                    sc.line_entry.range.GetBaseAddress().Dump (&strm, 
-                                                               exe_scope,
-                                                               Address::DumpStyleLoadAddress, 
-                                                               Address::DumpStyleModuleWithFileAddress);
-                    strm.PutCString(" in ");
-                }
-            }
-            
             AddressRange range;
             
             sc.GetAddressRange(eSymbolContextEverything, 
@@ -1503,43 +1517,25 @@
                                true, 
                                range);
             
-            sc.DumpStopContext(&strm, 
-                               exe_scope, 
-                               range.GetBaseAddress(), 
-                               true, 
-                               true, 
-                               false);
-
-            strm.EOL();
-            if (verbose)
-            {
-                if (sc.line_entry.range.GetBaseAddress().IsValid())
-                {
-                    if (sc.line_entry.range.GetBaseAddress().Dump (&strm, 
-                                                                   exe_scope, 
-                                                                   Address::DumpStyleDetailedSymbolContext))
-                        strm.PutCString("\n\n");
-                }
-                else if (sc.function->GetAddressRange().GetBaseAddress().IsValid())
-                {
-                    if (sc.function->GetAddressRange().GetBaseAddress().Dump (&strm, 
-                                                                              exe_scope, 
-                                                                              Address::DumpStyleDetailedSymbolContext))
-                        strm.PutCString("\n\n");
-                }
-            }
+            DumpAddress (exe_scope, range.GetBaseAddress(), verbose, strm);
         }
     }
     strm.IndentLess ();
 }
 
 static uint32_t
-LookupFunctionInModule (CommandInterpreter &interpreter, Stream &strm, Module *module, const char *name, bool name_is_regex, bool include_inlines, bool verbose)
+LookupFunctionInModule (CommandInterpreter &interpreter,
+                        Stream &strm,
+                        Module *module,
+                        const char *name,
+                        bool name_is_regex,
+                        bool include_inlines,
+                        bool include_symbols,
+                        bool verbose)
 {
     if (module && name && name[0])
     {
         SymbolContextList sc_list;
-        const bool include_symbols = false;
         const bool append = true;
         uint32_t num_matches = 0;
         if (name_is_regex)
@@ -1569,7 +1565,7 @@
             strm.Printf("%u match%s found in ", num_matches, num_matches > 1 ? "es" : "");
             DumpFullpath (strm, &module->GetFileSpec(), 0);
             strm.PutCString(":\n");
-            DumpSymbolContextList (interpreter, strm, sc_list, true, verbose);
+            DumpSymbolContextList (interpreter.GetExecutionContext().GetBestExecutionContextScope(), strm, sc_list, verbose);
         }
         return num_matches;
     }
@@ -1577,7 +1573,7 @@
 }
 
 static uint32_t
-LookupTypeInModule (CommandInterpreter &interpreter, 
+LookupTypeInModule (CommandInterpreter &interpreter,
                     Stream &strm, 
                     Module *module, 
                     const char *name_cstr, 
@@ -1610,6 +1606,18 @@
                     // to types that haven't yet been parsed will get parsed.
                     type_sp->GetClangFullType ();
                     type_sp->GetDescription (&strm, eDescriptionLevelFull, true);
+                    // Print all typedef chains
+                    TypeSP typedef_type_sp (type_sp);
+                    TypeSP typedefed_type_sp (typedef_type_sp->GetTypedefType());
+                    while (typedefed_type_sp)
+                    {
+                        strm.EOL();
+                        strm.Printf("     typedef '%s': ", typedef_type_sp->GetName().GetCString());
+                        typedefed_type_sp->GetClangFullType ();
+                        typedefed_type_sp->GetDescription (&strm, eDescriptionLevelFull, true);
+                        typedef_type_sp = typedefed_type_sp;
+                        typedefed_type_sp = typedef_type_sp->GetTypedefType();
+                    }
                 }
                 strm.EOL();
             }
@@ -1643,7 +1651,7 @@
             strm << " in ";
             DumpFullpath (strm, &module->GetFileSpec(), 0);
             strm.PutCString(":\n");
-            DumpSymbolContextList (interpreter, strm, sc_list, true, verbose);
+            DumpSymbolContextList (interpreter.GetExecutionContext().GetBestExecutionContextScope(), strm, sc_list, verbose);
             return num_matches;
         }
     }
@@ -2837,13 +2845,43 @@
                 return result.Succeeded();
             }
             
-            if (use_global_module_list)
+            ModuleList module_list;
+            ModuleList *module_list_ptr = NULL;
+            const size_t argc = command.GetArgumentCount();
+            if (argc == 0)
             {
-                locker.Lock (Module::GetAllocationModuleCollectionMutex());
-                num_modules = Module::GetNumberAllocatedModules();
+                if (use_global_module_list)
+                {
+                    locker.Lock (Module::GetAllocationModuleCollectionMutex());
+                    num_modules = Module::GetNumberAllocatedModules();
+                }
+                else
+                {
+                    module_list_ptr = &target->GetImages();
+                    num_modules = target->GetImages().GetSize();
+                }
             }
             else
-                num_modules = target->GetImages().GetSize();
+            {
+                for (size_t i=0; i<argc; ++i)
+                {
+                    // Dump specified images (by basename or fullpath)
+                    const char *arg_cstr = command.GetArgumentAtIndex(i);
+                    const size_t num_matches = FindModulesByName (target, arg_cstr, module_list, use_global_module_list);
+                    if (num_matches == 0)
+                    {
+                        if (argc == 1)
+                        {
+                            result.AppendErrorWithFormat ("no modules found that match '%s'", arg_cstr);
+                            result.SetStatus (eReturnStatusFailed);
+                            return false;
+                        }
+                    }
+                }
+                
+                num_modules = module_list.GetSize();
+                module_list_ptr = &module_list;
+            }
 
             if (num_modules > 0)
             {                
@@ -2851,15 +2889,15 @@
                 {
                     ModuleSP module_sp;
                     Module *module;
-                    if (use_global_module_list)
+                    if (module_list_ptr)
                     {
-                        module = Module::GetAllocatedModuleAtIndex(image_idx);
-                        module_sp = module->shared_from_this();
+                        module_sp = module_list_ptr->GetModuleAtIndex(image_idx);
+                        module = module_sp.get();
                     }
                     else
                     {
-                        module_sp = target->GetImages().GetModuleAtIndex(image_idx);
-                        module = module_sp.get();
+                        module = Module::GetAllocatedModuleAtIndex(image_idx);
+                        module_sp = module->shared_from_this();
                     }
                     
                     int indent = strm.Printf("[%3u] ", image_idx);
@@ -2870,10 +2908,20 @@
             }
             else
             {
-                if (use_global_module_list)
-                    result.AppendError ("the global module list is empty");
+                if (argc)
+                {
+                    if (use_global_module_list)
+                        result.AppendError ("the global module list has no matching modules");
+                    else
+                        result.AppendError ("the target has no matching modules");
+                }
                 else
-                    result.AppendError ("the target has no associated executable images");
+                {
+                    if (use_global_module_list)
+                        result.AppendError ("the global module list is empty");
+                    else
+                        result.AppendError ("the target has no associated executable images");
+                }
                 result.SetStatus (eReturnStatusFailed);
                 return false;
             }
@@ -3081,6 +3129,7 @@
         eLookupTypeSymbol,
         eLookupTypeFileLine,    // Line is optional
         eLookupTypeFunction,
+        eLookupTypeFunctionOrSymbol,
         eLookupTypeType,
         kNumLookupTypes
     };
@@ -3145,11 +3194,16 @@
                     m_type = eLookupTypeFileLine;
                     break;
                     
-                case 'n':
+                case 'F':
                     m_str = option_arg;
                     m_type = eLookupTypeFunction;
                     break;
-                    
+                
+                case 'n':
+                    m_str = option_arg;
+                    m_type = eLookupTypeFunctionOrSymbol;
+                    break;
+
                 case 't':
                     m_str = option_arg;
                     m_type = eLookupTypeType;
@@ -3260,7 +3314,12 @@
             case eLookupTypeSymbol:
                 if (!m_options.m_str.empty())
                 {
-                    if (LookupSymbolInModule (m_interpreter, result.GetOutputStream(), module, m_options.m_str.c_str(), m_options.m_use_regex))
+                    if (LookupSymbolInModule (m_interpreter,
+                                              result.GetOutputStream(),
+                                              module,
+                                              m_options.m_str.c_str(),
+                                              m_options.m_use_regex,
+                                              m_options.m_verbose))
                     {
                         result.SetStatus(eReturnStatusSuccessFinishResult);
                         return true;
@@ -3285,7 +3344,8 @@
                     }
                 }
                 break;
-                
+
+            case eLookupTypeFunctionOrSymbol:
             case eLookupTypeFunction:
                 if (!m_options.m_str.empty())
                 {
@@ -3295,6 +3355,7 @@
                                                 m_options.m_str.c_str(),
                                                 m_options.m_use_regex,
                                                 m_options.m_include_inlines,
+                                                m_options.m_type == eLookupTypeFunctionOrSymbol, // include symbols
                                                 m_options.m_verbose))
                     {
                         result.SetStatus(eReturnStatusSuccessFinishResult);
@@ -3303,6 +3364,7 @@
                 }
                 break;
                 
+                
             case eLookupTypeType:
                 if (!m_options.m_str.empty())
                 {
@@ -3416,18 +3478,19 @@
 {
     { LLDB_OPT_SET_1,   true,  "address",    'a', required_argument, NULL, 0, eArgTypeAddress,      "Lookup an address in one or more target modules."},
     { LLDB_OPT_SET_1,   false, "offset",     'o', required_argument, NULL, 0, eArgTypeOffset,       "When looking up an address subtract <offset> from any addresses before doing the lookup."},
-    { LLDB_OPT_SET_2| LLDB_OPT_SET_4  
-      /* FIXME: re-enable this for types when the LookupTypeInModule actually uses the regex option: | LLDB_OPT_SET_5 */ ,
+    { LLDB_OPT_SET_2| LLDB_OPT_SET_4 | LLDB_OPT_SET_5
+      /* FIXME: re-enable this for types when the LookupTypeInModule actually uses the regex option: | LLDB_OPT_SET_6 */ ,
                         false, "regex",      'r', no_argument,       NULL, 0, eArgTypeNone,         "The <name> argument for name lookups are regular expressions."},
     { LLDB_OPT_SET_2,   true,  "symbol",     's', required_argument, NULL, 0, eArgTypeSymbol,       "Lookup a symbol by name in the symbol tables in one or more target modules."},
     { LLDB_OPT_SET_3,   true,  "file",       'f', required_argument, NULL, 0, eArgTypeFilename,     "Lookup a file by fullpath or basename in one or more target modules."},
     { LLDB_OPT_SET_3,   false, "line",       'l', required_argument, NULL, 0, eArgTypeLineNum,      "Lookup a line number in a file (must be used in conjunction with --file)."},
     { LLDB_OPT_SET_3|
       LLDB_OPT_SET_4,   false, "no-inlines", 'i', no_argument,       NULL, 0, eArgTypeNone,         "Ignore inline entries (must be used in conjunction with --file or --function)."},
-    { LLDB_OPT_SET_4,   true,  "function",   'n', required_argument, NULL, 0, eArgTypeFunctionName, "Lookup a function by name in the debug symbols in one or more target modules."},
-    { LLDB_OPT_SET_5,   true,  "type",       't', required_argument, NULL, 0, eArgTypeName,         "Lookup a type by name in the debug symbols in one or more target modules."},
+    { LLDB_OPT_SET_4,   true,  "function",   'F', required_argument, NULL, 0, eArgTypeFunctionName, "Lookup a function by name in the debug symbols in one or more target modules."},
+    { LLDB_OPT_SET_5,   true,  "name",       'n', required_argument, NULL, 0, eArgTypeFunctionName, "Lookup a function or symbol by name in one or more target modules."},
+    { LLDB_OPT_SET_6,   true,  "type",       't', required_argument, NULL, 0, eArgTypeName,         "Lookup a type by name in the debug symbols in one or more target modules."},
     { LLDB_OPT_SET_ALL, false, "verbose",    'v', no_argument,       NULL, 0, eArgTypeNone,         "Enable verbose lookup information."},
-    { 0, false, NULL,           0, 0,                 NULL, 0, eArgTypeNone, NULL }
+    { 0,                false, NULL,           0, 0,                 NULL, 0, eArgTypeNone, NULL }
 };
 
 

Modified: lldb/branches/apple/python-GIL/source/Core/Address.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/branches/apple/python-GIL/source/Core/Address.cpp?rev=156872&r1=156871&r2=156872&view=diff
==============================================================================
--- lldb/branches/apple/python-GIL/source/Core/Address.cpp (original)
+++ lldb/branches/apple/python-GIL/source/Core/Address.cpp Tue May 15 17:42:42 2012
@@ -707,7 +707,8 @@
                         Variable *var = variable_list.GetVariableAtIndex (var_idx).get();
                         if (var && var->LocationIsValidForAddress (*this))
                         {
-                            s->Printf ("     Variable: id = {0x%8.8llx}, name = \"%s\", type= \"%s\", location =",
+                            s->Indent();
+                            s->Printf ("   Variable: id = {0x%8.8llx}, name = \"%s\", type= \"%s\", location =",
                                        var->GetID(),
                                        var->GetName().GetCString(),
                                        var->GetType()->GetName().GetCString());

Modified: lldb/branches/apple/python-GIL/source/Symbol/Symbol.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/branches/apple/python-GIL/source/Symbol/Symbol.cpp?rev=156872&r1=156871&r2=156872&view=diff
==============================================================================
--- lldb/branches/apple/python-GIL/source/Symbol/Symbol.cpp (original)
+++ lldb/branches/apple/python-GIL/source/Symbol/Symbol.cpp Tue May 15 17:42:42 2012
@@ -179,7 +179,7 @@
 void
 Symbol::GetDescription (Stream *s, lldb::DescriptionLevel level, Target *target) const
 {
-    s->Printf("uid={%6u}", m_uid);
+    s->Printf("id = {0x%8.8x}", m_uid);
     
     if (m_addr_range.GetBaseAddress().GetSection())
     {

Modified: lldb/branches/apple/python-GIL/source/Symbol/Type.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/branches/apple/python-GIL/source/Symbol/Type.cpp?rev=156872&r1=156871&r2=156872&view=diff
==============================================================================
--- lldb/branches/apple/python-GIL/source/Symbol/Type.cpp (original)
+++ lldb/branches/apple/python-GIL/source/Symbol/Type.cpp Tue May 15 17:42:42 2012
@@ -346,6 +346,21 @@
     return false;
 }
 
+lldb::TypeSP
+Type::GetTypedefType()
+{
+    lldb::TypeSP type_sp;
+    if (IsTypedef())
+    {
+        Type *typedef_type = m_symbol_file->ResolveTypeUID(m_encoding_uid);
+        if (typedef_type)
+            type_sp = typedef_type->shared_from_this();
+    }
+    return type_sp;
+}
+
+
+
 lldb::Format
 Type::GetFormat ()
 {

Modified: lldb/branches/apple/python-GIL/test/lang/objc/foundation/TestObjCMethods2.py
URL: http://llvm.org/viewvc/llvm-project/lldb/branches/apple/python-GIL/test/lang/objc/foundation/TestObjCMethods2.py?rev=156872&r1=156871&r2=156872&view=diff
==============================================================================
--- lldb/branches/apple/python-GIL/test/lang/objc/foundation/TestObjCMethods2.py (original)
+++ lldb/branches/apple/python-GIL/test/lang/objc/foundation/TestObjCMethods2.py Tue May 15 17:42:42 2012
@@ -60,12 +60,14 @@
         self.buildDwarf()
         self.MyString_dump()
 
+    @expectedFailurei386
     @dsym_test
     def test_NSError_po_with_dsym(self):
         """Test that po of the result of an unknown method doesn't require a cast."""
         self.buildDsym()
         self.NSError_po()
 
+    @expectedFailurei386
     @dwarf_test
     def test_NSError_po_with_dwarf(self):
         """Test that po of the result of an unknown method doesn't require a cast."""

Modified: lldb/branches/apple/python-GIL/test/lang/objc/objc-class-method/TestObjCClassMethod.py
URL: http://llvm.org/viewvc/llvm-project/lldb/branches/apple/python-GIL/test/lang/objc/objc-class-method/TestObjCClassMethod.py?rev=156872&r1=156871&r2=156872&view=diff
==============================================================================
--- lldb/branches/apple/python-GIL/test/lang/objc/objc-class-method/TestObjCClassMethod.py (original)
+++ lldb/branches/apple/python-GIL/test/lang/objc/objc-class-method/TestObjCClassMethod.py Tue May 15 17:42:42 2012
@@ -13,12 +13,14 @@
     @unittest2.skipUnless(sys.platform.startswith("darwin"), "requires Darwin")
     @python_api_test
 
+    @expectedFailurei386
     @dsym_test
     def test_with_dsym_and_python_api(self):
         """Test calling functions in class methods."""
         self.buildDsym()
         self.objc_class_method()
 
+    @expectedFailurei386
     @python_api_test
     @dwarf_test
     def test_with_dwarf_and_python_api(self):

Modified: lldb/branches/apple/python-GIL/test/lang/objc/objc-new-syntax/TestObjCNewSyntax.py
URL: http://llvm.org/viewvc/llvm-project/lldb/branches/apple/python-GIL/test/lang/objc/objc-new-syntax/TestObjCNewSyntax.py?rev=156872&r1=156871&r2=156872&view=diff
==============================================================================
--- lldb/branches/apple/python-GIL/test/lang/objc/objc-new-syntax/TestObjCNewSyntax.py (original)
+++ lldb/branches/apple/python-GIL/test/lang/objc/objc-new-syntax/TestObjCNewSyntax.py Tue May 15 17:42:42 2012
@@ -13,11 +13,13 @@
 
     mydir = os.path.join("lang", "objc", "objc-new-syntax")
 
+    @expectedFailurei386
     @dsym_test
     def test_expr_with_dsym(self):
         self.buildDsym()
         self.expr()
 
+    @expectedFailurei386
     @dwarf_test
     def test_expr_with_dwarf(self):
         self.buildDwarf()





More information about the lldb-commits mailing list