Skip to content
  1. Dec 04, 2013
    • David Majnemer's avatar
      Sema: Propagate the mangling number into instantiations · dbc0c8f9
      David Majnemer authored
      We would lose track of the mangling number assigned to the original
      declaration which would cause us to create manglings that didn't match
      the Itanium C++ specification.
      
      e.g. Two static fields with the same name inside of a function template
      would receive the same mangling with LLVM fixing up the second field so
      they wouldn't collide.  This would create an incompatibility with other
      compilers following the Itanium ABI.
      
      I've confirmed that the new mangling is identical to the ones generated
      by icc and gcc.
      
      N.B. This was uncovered while working on Microsoft mangler.
      
      llvm-svn: 196368
      dbc0c8f9
    • NAKAMURA Takumi's avatar
      0acd8a75
  2. Dec 03, 2013
  3. Nov 25, 2013
    • David Majnemer's avatar
      [-cxx-abi microsoft] Create backrefs for <unnamed-type-`id'> · 956bc117
      David Majnemer authored
      It wasn't possible for an anonymous type to show up inside of function arguments.
      However, decltype (which MSVC added support for in 2010) makes this
      possible.  Further, backrefs to these anonymous types can now be formed.
      
      This fixes PR18022.
      
      N.B. We do not, and very likely _will not_, support MSVC's bug where
      subsequent typedefs of anonymous types leak into the linkage name; this
      is a gross violation of the ABI.  A warning should be introduced to
      inform our users of this particular shortcoming.
      
      llvm-svn: 195669
      956bc117
  4. Nov 24, 2013
  5. Nov 22, 2013
  6. Nov 21, 2013
  7. Nov 18, 2013
  8. Nov 15, 2013
    • Hans Wennborg's avatar
      [-cxx-abi microsoft] Emit thunks for pointers to virtual member functions · 88497d61
      Hans Wennborg authored
      Instead of storing the vtable offset directly in the function pointer and
      doing a branch to check for virtualness at each call site, the MS ABI
      generates a thunk for calling the function at a specific vtable offset,
      and puts that in the function pointer.
      
      This patch adds support for emitting such thunks. However, it doesn't support
      pointers to virtual member functions that are variadic, have an incomplete
      aggregate return type or parameter, or are overriding a function in a virtual
      base class.
      
      Differential Revision: http://llvm-reviews.chandlerc.com/D2104
      
      llvm-svn: 194827
      88497d61
  9. Nov 14, 2013
  10. Nov 12, 2013
    • Rafael Espindola's avatar
      Avoid producing mismatched comdats. · 129d313c
      Rafael Espindola authored
      The problem was that given
      
      template<typename T>
      struct foo {
        ~foo() {}
      };
      template class foo<int>;
      
      We would produce a alias, creating a comdat with D0 and D1, since the symbols
      have to be weak. Another TU is not required to have a explicit template
      instantiation definition or an explict template instantiation declaration and
      for
      
      template<typename T>
      struct foo {
        ~foo() {}
      };
      foo<int> a;
      
      we would produce a comdat with only one symbol in it.
      
      llvm-svn: 194520
      129d313c
    • Rafael Espindola's avatar
      Keep the old function order in CodeGenModule::applyReplacements. · 0196a1d9
      Rafael Espindola authored
      The original decls are created when used. The replacements are created at the
      end of the TU in reverse order.
      
      This makes the original order far better for testing. This is particularly
      important since the replacement logic could be used even when
      -mconstructor-aliases is not used, but that would make many tests hard to read.
      
      This is a fixed version of r194357 which handles replacing a destructor with
      another which is an alias to a third one.
      
      llvm-svn: 194452
      0196a1d9
  11. Nov 11, 2013
  12. Nov 10, 2013
    • Rafael Espindola's avatar
      Keep the old function order in CodeGenModule::applyReplacements. · 732c99c4
      Rafael Espindola authored
      The original decls are created when used. The replacements are created at the
      end of the TU in reverse order.
      
      This makes the original order far better for testing. This is particularly
      important since the replacement logic could be used even when
      -mconstructor-aliases is not used, but that would make many tests hard to read.
      
      llvm-svn: 194357
      732c99c4
    • Rafael Espindola's avatar
      Add -mconstructor aliases to some tests. · 442ecd22
      Rafael Espindola authored
      clang-cl adds these, so this makes the tests a bit more realistic. These are the
      tests where it would make a difference if the windows specific handling were
      removed.
      
      llvm-svn: 194336
      442ecd22
  13. Nov 09, 2013
  14. Nov 08, 2013
  15. Nov 06, 2013
  16. Nov 05, 2013
Loading