This project is mirrored from Pull mirroring updated .
  1. 27 Oct, 2019 2 commits
    • Kenneth Moreland's avatar
      Try to fix uninitialized anonymous variable warning · 7518d067
      Kenneth Moreland authored
      The code from the previous commit was causing one of the dashboards,
      which is using gcc-7, to produce the following warning:
      In file included from ../testing/UnitTestVariant.cxx:11:0:
      ../Variant.h: In function 'void {anonymous}::TestCopyDestroy()':
      ../Variant.h:269:5: warning: '<anonymous>' may be used uninitialized in this function [-Wmaybe-uninitialized]
           this->Storage = std::move(rhs.Storage);
      At best, this warning is not helpful as it does not seem to point to
      anything that could be used uninitialized. At worst, it might be a
      compiler bug. A Google search finds a few similar bugs although none I
      can assert with any confidence of this issue. However, many reported
      bugs and issues point to the use of anonymous namespaces. So, I'm going
      to attempt to fix the problem by removing anonymous namespaces.
      Hopefully it will fix the warning or at least point me to something
      concrete that I can fix.
    • Kenneth Moreland's avatar
      Register Variant as trivially copyable if possible · 5b18ffd7
      Kenneth Moreland authored
      The Variant template can hold any type. If it is holding a type that is
      non-copyable, then it has to make sure that appropriate constructors,
      copiers, movers, and destructors are called.
      Previously, these were called even the Variant was holding a trivially
      copyable class because no harm no foul. If you were holding a trivially
      copyable class and did a memcpy, that work work, which should make it
      possible to copy between host and device, right?
      In theory yes, but in practice no. The problem is that Cuda is
      outsmarting the code. It is checking that Variant is not trivially-
      copyable by C++ semantics and refusing to push it.
      So, change Variant to check to see if all its supported classes are
      trivially copyable. If they are, then it use the default constructors,
      destructors, movers, and copiers so that C++ recognizes it as trivially
  2. 26 Oct, 2019 1 commit
  3. 21 Oct, 2019 2 commits
  4. 17 Oct, 2019 7 commits
  5. 15 Oct, 2019 3 commits
  6. 14 Oct, 2019 4 commits
  7. 11 Oct, 2019 2 commits
  8. 10 Oct, 2019 2 commits
  9. 09 Oct, 2019 9 commits
  10. 08 Oct, 2019 8 commits