[PATCH] D54472: Disable invalid isPodLike<> specialization

Fedor Sergeev via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Mon Jan 21 03:20:44 PST 2019


fedor.sergeev added a comment.

I'm sorry to bring bad news, but this fails for our gcc 4.9.2 build, when building llvm/tools/llvm-xray/xray-converter.cpp.
Failures looks like this:

  ] g++   -DGTEST_HAS_RTTI=0 -D_DEBUG -D_GNU_SOURCE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -Itools/llvm-xray -I/llvm/tools/llvm-xray -Iinclude -I/home/fsergeev/work/llvm-upstre
  am/llvm/include -fPIC -fvisibility-inlines-hidden -Werror=date-time -std=c++11  -fdiagnostics-color -ffunction-sections -fdata-sections -O2 -g    -UNDEBUG  -fno-exceptions -fno-rtti  -c /llvm/tools/llvm-xr
  ay/xray-converter.cpp 
  In file included from /llvm/tools/llvm-xray/xray-converter.cpp:14:0:
  /llvm/tools/llvm-xray/trie-node.h: In instantiation of ‘struct TrieNode<{anonymous}::StackIdData>’:
  gcc/include/c++/4.9.2/type_traits:1183:45:   required by substitution of ‘template<class _Tp1, class _Up1, class> static std::true_type std::__is_assignable_helper<_Tp, _Up>::__test
  (int) [with _Tp1 = llvm::detail::trivial_helper<TrieNode<{anonymous}::StackIdData>*>&; _Up1 = const llvm::detail::trivial_helper<TrieNode<{anonymous}::StackIdData>*>&; <template-parameter-1-3> = <missing>]’
  gcc/include/c++/4.9.2/type_traits:1192:30:   required from ‘class std::__is_assignable_helper<llvm::detail::trivial_helper<TrieNode<{anonymous}::StackIdData>*>&, const llvm::detail:
  :trivial_helper<TrieNode<{anonymous}::StackIdData>*>&>’
  gcc/include/c++/4.9.2/type_traits:1197:12:   required from ‘struct std::is_assignable<llvm::detail::trivial_helper<TrieNode<{anonymous}::StackIdData>*>&, const llvm::detail::trivial
  _helper<TrieNode<{anonymous}::StackIdData>*>&>’
  gcc/include/c++/4.9.2/type_traits:1209:12:   required from ‘struct std::__is_copy_assignable_impl<llvm::detail::trivial_helper<TrieNode<{anonymous}::StackIdData>*>, true>’
  gcc/include/c++/4.9.2/type_traits:1215:12:   required from ‘struct std::is_copy_assignable<llvm::detail::trivial_helper<TrieNode<{anonymous}::StackIdData>*> >’
  /llvm/include/llvm/Support/type_traits.h:142:25:   required from ‘constexpr const bool llvm::is_trivially_copyable<TrieNode<{anonymous}::StackIdData>*>::has_trivial_copy_assign’
  /llvm/include/llvm/Support/type_traits.h:163:32:   required from ‘constexpr const bool llvm::is_trivially_copyable<TrieNode<{anonymous}::StackIdData>*>::value’
  /llvm/include/llvm/ADT/SmallVector.h:321:7:   required from ‘class llvm::SmallVectorImpl<TrieNode<{anonymous}::StackIdData>*>’
  /llvm/include/llvm/ADT/SmallVector.h:845:7:   required from ‘class llvm::SmallVector<TrieNode<{anonymous}::StackIdData>*, 4u>’
  /llvm/tools/llvm-xray/xray-converter.cpp:174:43:   required from here
  /llvm/tools/llvm-xray/trie-node.h:38:52: error: ‘TrieNode<AssociatedData>::Callees’ has incomplete type
     llvm::SmallVector<TrieNode<AssociatedData> *, 4> Callees;
                                                      ^
  In file included from /llvm/include/llvm/ADT/STLExtras.h:20:0,
                   from /llvm/include/llvm/ADT/StringRef.h:12,
                   from /llvm/include/llvm/ADT/StringMap.h:16,
                   from /llvm/include/llvm/Support/Host.h:16,
                   from /llvm/include/llvm/ADT/Hashing.h:48,
                   from /llvm/include/llvm/ADT/ArrayRef.h:12,
                   from /llvm/include/llvm/ADT/DenseMapInfo.h:16,
                   from /llvm/include/llvm/ADT/DenseMap.h:16,
                   from /llvm/tools/llvm-xray/func-id-helper.h:15,
                   from /llvm/tools/llvm-xray/xray-converter.h:16,
                   from /llvm/tools/llvm-xray/xray-converter.cpp:12:

Here I have a reproducer that shows the problem on godbolt:

  https://gcc.godbolt.org/z/Tgk7M0


Repository:
  rL LLVM

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D54472/new/

https://reviews.llvm.org/D54472





More information about the llvm-commits mailing list