1. 31 Aug, 2013 1 commit
    • Kenton Varda's avatar
      Actually fix the bug, which was a doozy: OrphanBuilder::tag was sometimes… · a5bb798d
      Kenton Varda authored
      Actually fix the bug, which was a doozy:  OrphanBuilder::tag was sometimes initialized using WirePointer::setKindAndTarget(), but since the tag didn't live inside the target segment, this used illegal pointer arithmetic.  The target is never read from an orphan tag anyway, so I thought it would be no big deal.  But it turns out Clang actually optimizes under the assumption that pointer arithmetic returns a whole value.  As a result, on 32-bit system where 64-bit values are only 32-bit aligned, the tag and target might not have been a whole number of words apart, and the extra bit actually found its way into the 'kind' bits, causing e.g. a struct pointer to become an invalid far pointer.  Crash.  The fix required refactoring to ensure that setKindAndOffset() is never used for orphan tags.
      a5bb798d
  2. 27 Aug, 2013 1 commit
  3. 25 Aug, 2013 1 commit
  4. 22 Aug, 2013 2 commits
  5. 21 Aug, 2013 1 commit
  6. 16 Aug, 2013 1 commit
  7. 15 Aug, 2013 4 commits
  8. 09 Aug, 2013 1 commit
  9. 13 Jul, 2013 1 commit
  10. 06 Jun, 2013 2 commits
  11. 31 May, 2013 1 commit
  12. 17 May, 2013 1 commit
  13. 16 May, 2013 1 commit
  14. 15 May, 2013 1 commit
  15. 14 May, 2013 1 commit
  16. 13 May, 2013 1 commit
  17. 08 May, 2013 1 commit
  18. 04 May, 2013 1 commit
  19. 30 Apr, 2013 1 commit
  20. 29 Apr, 2013 2 commits
  21. 27 Apr, 2013 1 commit
  22. 26 Apr, 2013 4 commits
  23. 25 Apr, 2013 1 commit
  24. 20 Apr, 2013 2 commits
  25. 19 Apr, 2013 1 commit
  26. 17 Apr, 2013 1 commit
  27. 15 Apr, 2013 1 commit
  28. 11 Apr, 2013 2 commits
  29. 09 Apr, 2013 1 commit