Skip to content
  1. Aug 11, 2012
  2. Aug 09, 2012
  3. Aug 04, 2012
  4. Aug 01, 2012
    • Sean Callanan's avatar
      Instructions generated by a disassembler can now · 7e6d4e5a
      Sean Callanan authored
      keep a shared pointer to their disassembler.  This
      is important for the LLVM-C disassembler because
      it needs to lock its parent in order to disassemble
      itself.
      
      This means that every interface that returned a
      Disassembler* needs to return a DisassemblerSP, so
      that the instructions and any external owners share
      the same reference count on the object.  I changed
      all clients to use this shared pointer, which also
      plugged a few leaks.
      
      <rdar://problem/12002822>
      
      llvm-svn: 161123
      7e6d4e5a
  5. Jul 28, 2012
  6. Jul 27, 2012
    • Sean Callanan's avatar
      Changed the IRForTarget pass to ensure that all · bad134ff
      Sean Callanan authored
      sel_getName() calls are generated for all Objective-C
      selectors before static literals are moved to the
      static allocation.  This prevents errors of the form
      
      Internal error [IRForTarget]: Couldn't change a static
      reference to an Objective-C selector to a dynamic
      reference
      
      <rdar://problem/11331906>
      
      llvm-svn: 160887
      bad134ff
  7. Jul 21, 2012
    • Sean Callanan's avatar
      Added a fix that allows newly-constructed objects · 6e6d4a62
      Sean Callanan authored
      to returned by expressions, by removing the
      __cxa_atexit call that would normally cause these
      objects to be destroyed.  This also prevents many
      errors of the form
      
      Couldn't rewrite one of the arguments of a function call
      error: Couldn't materialize struct: Structure hasn't been laid out yet
      
      <rdar://problem/11309402>
      
      llvm-svn: 160596
      6e6d4a62
  8. Jul 18, 2012
    • Greg Clayton's avatar
      <rdar://problem/10998370> · 5e0c5e81
      Greg Clayton authored
      Improved the error message when we can find a function in the current program by printing the demangled name.
      
      Also added the ability to create lldb_private::Mangled instances with a ConstString when we already have a ConstString for a mangled or demangled name. Also added the ability to call SetValue with a ConstString and also without a boolean to indicate if the string is mangled where we will now auto-detect if the string is mangled.
      
      llvm-svn: 160450
      5e0c5e81
  9. Jul 17, 2012
  10. Jul 14, 2012
  11. Jul 13, 2012
  12. Jul 04, 2012
  13. Jun 09, 2012
    • Sean Callanan's avatar
      Minor fixes for ARM/iOS targets: · e3333d69
      Sean Callanan authored
      - On iOS, we select the "apcs-gnu" ABI to match
        what libraries expect.
      
      - Literals are now allocated at their preferred
        alignment, eliminating many alignment crashes.
      
      llvm-svn: 158236
      e3333d69
  14. May 31, 2012
  15. May 30, 2012
  16. May 22, 2012
  17. May 21, 2012
  18. May 16, 2012
    • Sean Callanan's avatar
      Enabled C++11 in the expression parser. auto and · 8d825786
      Sean Callanan authored
      various other syntactic sugar work.  Lambdas do
      not due to some problems relocating code containing
      lambdas.  Rvalue references work when returned from
      expressions, but need more testing.
      
      llvm-svn: 156948
      8d825786
  19. May 11, 2012
  20. May 10, 2012
    • Greg Clayton's avatar
      <rdar://problem/11330621> · ba812f42
      Greg Clayton authored
      Fixed the DisassemblerLLVMC disassembler to parse more efficiently instead of parsing opcodes over and over. The InstructionLLVMC class now only reads the opcode in the InstructionLLVMC::Decode function. This can be done very efficiently for ARM and architectures that have fixed opcode sizes. For x64 it still calls the disassembler to get the byte size.
      
      Moved the lldb_private::Instruction::Dump(...) function up into the lldb_private::Instruction class and it now uses the function that gets the mnemonic, operandes and comments so that all disassembly is using the same code.
      
      Added StreamString::FillLastLineToColumn() to allow filling a line up to a column with a character (which is used by the lldb_private::Instruction::Dump(...) function).
      
      Modified the Opcode::GetData() fucntion to "do the right thing" for thumb instructions.
      
      llvm-svn: 156532
      ba812f42
  21. May 09, 2012
  22. Apr 26, 2012
    • Sean Callanan's avatar
      Made the IR interpreter move all floats, not just "wide" · 822944c9
      Sean Callanan authored
      ones, to its own constant pool.  This reflects the fact
      that the LLVM code generators for different targets move
      floats to their constant pools under varying conditions,
      and the JIT cannot (yet) be relied upon to relocate references to
      its constant pool correctly.
      
      llvm-svn: 155660
      822944c9
  23. Apr 25, 2012
  24. Apr 24, 2012
    • Sean Callanan's avatar
      Fixed a crasher that occurs when an expression · 4538aa25
      Sean Callanan authored
      doesn't return a result.  If that expression can't
      be run in the current context (for example, if it
      uses a function and there is no running process)
      then we used to try to destroy the nonexistent
      result variable.  We now only destroy the result
      variable if we actually made one.
      
      llvm-svn: 155455
      4538aa25
  25. Apr 23, 2012
  26. Apr 17, 2012
  27. Apr 12, 2012
  28. Apr 07, 2012
  29. Apr 06, 2012
    • Greg Clayton's avatar
      In a prior commit, I changed the parameters around on a ModuleList::FindTypes... · 29399a24
      Greg Clayton authored
      In a prior commit, I changed the parameters around on a ModuleList::FindTypes where the old parameters that existing clients were using would have been compatible, so I renamed ModuleList::FindTypes to ModuleList::FindTypes2. Then I made fixes and verified I updated and fixed all client code, but I forgot to rename the function back to ModuleList::FindTypes(). I am doing that now and also cleaning up the C++ dynamic type code a bit.
      
      llvm-svn: 154182
      29399a24
  30. Apr 05, 2012
    • Sean Callanan's avatar
      Fixed a problem where we did not read properties · a658226a
      Sean Callanan authored
      correctly if the setter/getter were not present
      in the debug information.  The fixes are as follows:
      
      - We not only look for the method by its full name,
        but also look for automatically-generated methods
        when searching for a selector in an Objective-C
        interface.  This is necessary to find accessors.
      
      - Extract the getter and setter name from the
        DW_TAG_APPLE_Property declaration in the DWARF
        if they are present; generate them if not.
      
      llvm-svn: 154067
      a658226a
  31. Apr 03, 2012
  32. Mar 30, 2012
    • Enrico Granata's avatar
      Disabling blocks support because of rdar://problem/11024417 - This is... · 7f3296a6
      Enrico Granata authored
      Disabling blocks support because of rdar://problem/11024417 - This is hopefully just a temporary countermeasure
      
      llvm-svn: 153758
      7f3296a6
    • Greg Clayton's avatar
      <rdar://problem/11082392> · 219cf31f
      Greg Clayton authored
      Fixed an issue that could cause circular type parsing that will assert and kill LLDB.
      
      Prior to this fix the DWARF parser would always create class types and not start their definitions (for both C++ and ObjC classes) until we were asked to complete the class later. When we had cases like:
      
      class A
      {
          class B
          {
          };
      };
      
      We would alway try to complete A before specifying "A" as the decl context for B. Turns out we can just start the definition and still not complete the class since we can check the TagDecl::isCompleteDefinition() function. This only works for C++ types. This means we will not be pulling in the full definition of parent classes all the time and should help with our memory consumption and also reduce the amount of debug info we have to parse.
      
      I also reduced redundant code that was checking in a lldb::clang_type_t was a possible C++ dynamic type since it was still completing the type, just to see if it was dynamic. This was fixed in another function that was checking for a type being dynamic as an ObjC or a C++ type, but there was dedicated fucntion for C++ that we missed.
      
      llvm-svn: 153713
      219cf31f
  33. Mar 27, 2012
    • Greg Clayton's avatar
      <rdar://problem/11113279> · 84db9105
      Greg Clayton authored
      Fixed type lookups to "do the right thing". Prior to this fix, looking up a type using "foo::bar" would result in a type list that contains all types that had "bar" as a basename unless the symbol file was able to match fully qualified names (which our DWARF parser does not). 
      
      This fix will allow type matches to be made based on the basename and then have the types that don't match filtered out. Types by name can be fully qualified, or partially qualified with the new "bool exact_match" parameter to the Module::FindTypes() method.
      
      This fixes some issue that we discovered with dynamic type resolution as well as improves the overall type lookups in LLDB.
      
      llvm-svn: 153482
      84db9105
  34. Mar 21, 2012
  35. Mar 20, 2012
  36. Mar 15, 2012
    • Sean Callanan's avatar
      Strengthened LLDB's completion of object types. · cf12862a
      Sean Callanan authored
      Now when LLDB reports a variable, it has a
      complete type.  Similarly, when it reports
      members of a struct, it completes their types.
      Also, when it creates the result variable for
      an expression, it ensures that variable's type
      is complete.
      
      This ensures compliance with Clang's
      expectations, preventing potential crashes.
      
      llvm-svn: 152771
      cf12862a
Loading