Skip to content
  1. Nov 18, 2013
  2. Nov 16, 2013
  3. Nov 15, 2013
  4. Nov 14, 2013
    • Howard Hinnant's avatar
      This is a followup to r194536, which changed the pair copy constructor to be · f9fd0d6d
      Howard Hinnant authored
      trivial in C++03, thus making it trivial in both C++03 and C++11.
      
      This patch allows one to opt-in/out of this decision with a macro.  You can
      choose to have the pair copy constructor always be trivial, or always be
      non-trivial.  The flag controlling this is now _LIBCPP_TRIVIAL_PAIR_COPY_CTOR.
      
      The client can define this flag to 1, and the pair copy constructor will be
      trivial (when possible of course), or to 0, and the pair copy constructor will
      be nontrivial.
      
      Default settings for this flag are set in <__config> (as usual).  With this
      commit the default is _LIBCPP_TRIVIAL_PAIR_COPY_CTOR=1 for all platforms
      except __APPLE__, which defaults to _LIBCPP_TRIVIAL_PAIR_COPY_CTOR=0.
      
      llvm-svn: 194742
      f9fd0d6d
    • Marshall Clow's avatar
      Fixed bug in quoted strings implementation. Added test to be sure. Thanks to... · 513ecaba
      Marshall Clow authored
      Fixed bug in quoted strings implementation. Added test to be sure. Thanks to Peter Sommerlad for the report (and suggested fix)
      
      llvm-svn: 194725
      513ecaba
  5. Nov 13, 2013
    • Marshall Clow's avatar
      Move <dynarray> into include/experimental, and into the std::experimental... · 21fee96f
      Marshall Clow authored
      Move <dynarray> into include/experimental, and into the std::experimental namespace, since it's not part of C++14, but of an upcoming TS
      
      llvm-svn: 194614
      21fee96f
    • Howard Hinnant's avatar
      This fixes a very subtle ABI problem concerning the copy constructor of · ccad8c32
      Howard Hinnant authored
      pair, and a couple of pair-like implementation detail types.  The
      C++98/03 and 11 standards all specify that the copy constructor of
      pair<int, int> is trivial. However as libc++ tracked the draft C++11
      standard over the years, this copy constructor became non-trivial, and
      then just recently was corrected back to trivial for C++11.
      
      Unfortunately (for libc++1) the Itanium ABI specifies different calling
      conventions for trivial and non-trivial copy constructors.  Therefore
      currently the C++03 libc++ copy constructor for pair<int, int> is ABI
      incompatible with the C++11 libc++ copy constructor for pair<int, int>.
      This is Bad(tm).   This patch corrects the situation by making this copy
      constructor trivial in C++03 mode as well.
      
      Just in case it is needed for an incomplete C++11 compiler, libc++
      retains the ability to support pair with rvalue references, but without
      defaulted special members.  However the pair needs non-trivial special
      members to implement this special case, (as it did when clang was in
      this place a couple of years ago).
      
      During this work a bug was also found and fixed in
      is_trivially_constructible.
      
      And there is a minor drive-by fix in <__config> regarding
      __type_visibility__.
      
      A test is updated to ensure that the copy constructor of pair<int, int>
      is trivial in both C++03 and C++11.  This test will necessarily fail for
      a compiler that implements rvalue references but not defaulted special
      members.
      
      llvm-svn: 194536
      ccad8c32
  6. Nov 12, 2013
  7. Nov 07, 2013
  8. Nov 06, 2013
  9. Nov 05, 2013
  10. Nov 03, 2013
  11. Oct 31, 2013
  12. Oct 23, 2013
  13. Oct 21, 2013
  14. Oct 14, 2013
    • Howard Hinnant's avatar
      r192075 broke the buildbot at · 58af7e17
      Howard Hinnant authored
          http://lab.llvm.org:8013/builders/libcxx_clang-x86_64-darwin11-RA
      
      lit.py: <string>:230: note: inferred use_system_lib as: False
      lit.py: <string>:247: fatal: C++ ABI setting None unsupported for tests
      
      cxx_abi is geting set to None, and the lit script errors out shortly after
      that.  This patch changes the default of cxx_abi from None to 'libcxxabi'.
      This is likely not the right way to fix this problem.  However it gets the
      buildbot running again.  Improvements to this fix are welcome.
      
      llvm-svn: 192609
      58af7e17
  15. Oct 13, 2013
  16. Oct 12, 2013
  17. Oct 09, 2013
  18. Oct 08, 2013
Loading