[PATCH] D48518: ADT: Shrink SmallVector by 8B on 64-bit platforms

Peter Smith via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed Jul 25 10:32:10 PDT 2018


peter.smith added a comment.

This patch is causing the http://lab.llvm.org:8011/builders/clang-cmake-aarch64-lld to fail. Unfortunately (for me) the failures seems to be restricted to older versions of clang and are not reproducible on Arm or X86. The buildbot itself is using the default /usr/bin/clang for Ubuntu 16.04 LTS (clang version 3.8.0-2ubuntu4 (tags/RELEASE_380/final). The failures go away if I use the 3.9.1 release (No failures on 4.0.1, 6.0.0 or built from master). At this stage I think that this could be a code-gen bug in the AArch64 backend of clang 3.8.1 so I don't think it is worth reverting, but I'm mentioning it here just in case there is a subtle problem that is only being exposed by that version.

The failures on the bot are all a llvm::unreachable in checkDeducedTemplateArguments() clang/lib/Sema/SemaTemplateDeduction.cpp:367. The only way that I can see that the unreachable gets hit is if there is some kind of corruption of the ArgKind.

A stripped down bit of code that will cause a clang built with 3.8.1 on AArch64 to fail is:

  template<typename T, typename U>
  class test_attach30 { };
  
  template<typename T>
  class test_attach30<T, int> { };
  
  $ clang++ -fsyntax-only test.cpp
  Invalid TemplateArgument Kind!
  UNREACHABLE executed at
  clang/lib/Sema/SemaTemplateDeduction.cpp:367!


https://reviews.llvm.org/D48518





More information about the llvm-commits mailing list