<div dir="ltr"><div>I am also hitting this. 
GCC 4.8 is still the minimum at this time.<br></div><div><br></div><div>-- HT<br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Tue, Jan 22, 2019 at 8:10 AM Axel Naumann via cfe-commits <<a href="mailto:cfe-commits@lists.llvm.org">cfe-commits@lists.llvm.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Hi,<br>
<br>
This broke our clang builds with<br>
<br>
$ gcc --version<br>
gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-36)<br>
<br>
on CentOS Linux release 7.6.1810 (Core),<br>
<br>
[ 23%] Building CXX object<br>
tools/clang/lib/Basic/CMakeFiles/clangBasic.dir/Module.cpp.o<br>
<br>
In file included from include/llvm/ADT/StringMap.h:20:0,<br>
                 from include/llvm/Support/Host.h:16,<br>
                 from include/llvm/ADT/Hashing.h:48,<br>
                 from include/llvm/ADT/ArrayRef.h:12,<br>
                 from include/llvm/ADT/DenseMapInfo.h:16,<br>
                 from include/llvm/ADT/DenseMap.h:16,<br>
                 from tools/clang/include/clang/Basic/FileManager.h:19,<br>
                 from tools/clang/include/clang/Basic/Module.h:18,<br>
                 from tools/clang/lib/Basic/Module.cpp:14:<br>
include/llvm/Support/PointerLikeTypeTraits.h: In instantiation of<br>
‘struct llvm::PointerLikeTypeTraits<clang::Module*>’:<br>
/usr/include/c++/4.8.2/type_traits:1087:41:   required by substitution<br>
of ‘template<class _Tp1, class _Up1> static decltype<br>
(((declval<_Tp1>)()=(declval<_Up1>)(), std::__sfinae_types::__one()))<br>
std::__is_assignable_helper<_Tp, _Up>::__test(int) [with _Tp1 = _Tp1;<br>
_Up1 = _Up1; _Tp =<br>
llvm::detail::trivial_helper<llvm::PointerIntPair<clang::Module*, 1u,<br>
bool> >&; _Up = const<br>
llvm::detail::trivial_helper<llvm::PointerIntPair<clang::Module*, 1u,<br>
bool> >&] [with _Tp1 =<br>
llvm::detail::trivial_helper<llvm::PointerIntPair<clang::Module*, 1u,<br>
bool> >&; _Up1 = const<br>
llvm::detail::trivial_helper<llvm::PointerIntPair<clang::Module*, 1u,<br>
bool> >&]’<br>
/usr/include/c++/4.8.2/type_traits:1094:50:   required from ‘constexpr<br>
const bool<br>
std::__is_assignable_helper<llvm::detail::trivial_helper<llvm::PointerIntPair<clang::Module*,<br>
1u, bool> >&, const<br>
llvm::detail::trivial_helper<llvm::PointerIntPair<clang::Module*, 1u,<br>
bool> >&>::value’<br>
/usr/include/c++/4.8.2/type_traits:1099:12:   required from ‘struct<br>
std::is_assignable<llvm::detail::trivial_helper<llvm::PointerIntPair<clang::Module*,<br>
1u, bool> >&, const<br>
llvm::detail::trivial_helper<llvm::PointerIntPair<clang::Module*, 1u,<br>
bool> >&>’<br>
/usr/include/c++/4.8.2/type_traits:1112:12:   required from ‘struct<br>
std::__is_copy_assignable_impl<llvm::detail::trivial_helper<llvm::PointerIntPair<clang::Module*,<br>
1u, bool> >, false>’<br>
/usr/include/c++/4.8.2/type_traits:1118:12:   required from ‘struct<br>
std::is_copy_assignable<llvm::detail::trivial_helper<llvm::PointerIntPair<clang::Module*,<br>
1u, bool> > >’<br>
include/llvm/Support/type_traits.h:142:25:   required from ‘constexpr<br>
const bool<br>
llvm::is_trivially_copyable<llvm::PointerIntPair<clang::Module*, 1u,<br>
bool> >::has_trivial_copy_assign’<br>
include/llvm/Support/type_traits.h:163:32:   required from ‘constexpr<br>
const bool<br>
llvm::is_trivially_copyable<llvm::PointerIntPair<clang::Module*, 1u,<br>
bool> >::value’<br>
include/llvm/ADT/SmallVector.h:321:7:   required from ‘class<br>
llvm::SmallVectorImpl<llvm::PointerIntPair<clang::Module*, 1u, bool> >’<br>
include/llvm/ADT/SmallVector.h:845:7:   required from ‘class<br>
llvm::SmallVector<llvm::PointerIntPair<clang::Module*, 1u, bool>, 2u>’<br>
tools/clang/include/clang/Basic/Module.h:290:30:   required from here<br>
include/llvm/Support/PointerLikeTypeTraits.h:59:8: error: invalid<br>
application of ‘__alignof__’ to incomplete type ‘clang::Module’<br>
   enum { NumLowBitsAvailable = detail::ConstantLog2<alignof(T)>::value };<br>
        ^<br>
<br>
FYI in case you wonder:<br>
<br>
$ ls -l /usr/include/c++/<br>
total 8<br>
drwxr-xr-x. 12 root root 4096 Dec 11 03:24 4.8.2<br>
lrwxrwxrwx.  1 root root    5 Dec 11 03:24 4.8.5 -> 4.8.2<br>
<br>
<br>
Are we outside the "allowed" range for GCC versions?<br>
<br>
Cheers, Axel.<br>
<br>
On 1/20/19 10:19 PM, Serge Guelton via cfe-commits wrote:<br>
> Author: serge_sans_paille<br>
> Date: Sun Jan 20 13:19:56 2019<br>
> New Revision: 351701<br>
> <br>
> URL: <a href="http://llvm.org/viewvc/llvm-project?rev=351701&view=rev" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project?rev=351701&view=rev</a><br>
> Log:<br>
> Replace llvm::isPodLike<...>  by llvm::is_trivially_copyable<...><br>
> <br>
> As noted in <a href="https://bugs.llvm.org/show_bug.cgi?id=36651" rel="noreferrer" target="_blank">https://bugs.llvm.org/show_bug.cgi?id=36651</a>, the specialization for<br>
> isPodLike<std::pair<...>> did not match the expectation of<br>
> std::is_trivially_copyable which makes the memcpy optimization invalid.<br>
> <br>
> This patch renames the llvm::isPodLike trait into llvm::is_trivially_copyable.<br>
> Unfortunately std::is_trivially_copyable is not portable across compiler / STL<br>
> versions. So a portable version is provided too.<br>
> <br>
> Note that the following specialization were invalid:<br>
> <br>
>     std::pair<T0, T1><br>
>     llvm::Optional<T><br>
> <br>
> Tests have been added to assert that former specialization are respected by the<br>
> standard usage of llvm::is_trivially_copyable, and that when a decent version<br>
> of std::is_trivially_copyable is available, llvm::is_trivially_copyable is<br>
> compared to std::is_trivially_copyable.<br>
> <br>
> As of this patch, llvm::Optional is no longer considered trivially copyable,<br>
> even if T is. This is to be fixed in a later patch, as it has impact on a<br>
> long-running bug (see r347004)<br>
> <br>
> Note that GCC warns about this UB, but this got silented by <a href="https://reviews.llvm.org/D50296" rel="noreferrer" target="_blank">https://reviews.llvm.org/D50296</a>.<br>
> <br>
> Differential Revision: <a href="https://reviews.llvm.org/D54472" rel="noreferrer" target="_blank">https://reviews.llvm.org/D54472</a><br>
> <br>
> <br>
> Modified:<br>
>     cfe/trunk/include/clang/AST/BaseSubobject.h<br>
>     cfe/trunk/include/clang/AST/CharUnits.h<br>
>     cfe/trunk/include/clang/AST/DeclAccessPair.h<br>
>     cfe/trunk/include/clang/AST/DeclarationName.h<br>
>     cfe/trunk/include/clang/AST/ExprObjC.h<br>
>     cfe/trunk/include/clang/AST/GlobalDecl.h<br>
>     cfe/trunk/include/clang/AST/Type.h<br>
>     cfe/trunk/include/clang/Analysis/ProgramPoint.h<br>
>     cfe/trunk/include/clang/Basic/IdentifierTable.h<br>
>     cfe/trunk/include/clang/Basic/SourceLocation.h<br>
>     cfe/trunk/include/clang/Lex/Token.h<br>
>     cfe/trunk/include/clang/Sema/CodeCompleteConsumer.h<br>
>     cfe/trunk/include/clang/Sema/Ownership.h<br>
>     cfe/trunk/include/clang/StaticAnalyzer/Core/PathSensitive/SVals.h<br>
>     cfe/trunk/lib/AST/VTableBuilder.cpp<br>
>     cfe/trunk/lib/Sema/SemaChecking.cpp<br>
>     cfe/trunk/lib/StaticAnalyzer/Core/RegionStore.cpp<br>
>     cfe/trunk/test/Analysis/llvm-conventions.cpp<br>
>     cfe/trunk/tools/libclang/Indexing.cpp<br>
> <br>
> Modified: cfe/trunk/include/clang/AST/BaseSubobject.h<br>
> URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/AST/BaseSubobject.h?rev=351701&r1=351700&r2=351701&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/AST/BaseSubobject.h?rev=351701&r1=351700&r2=351701&view=diff</a><br>
> ==============================================================================<br>
> --- cfe/trunk/include/clang/AST/BaseSubobject.h (original)<br>
> +++ cfe/trunk/include/clang/AST/BaseSubobject.h Sun Jan 20 13:19:56 2019<br>
> @@ -80,11 +80,6 @@ template<> struct DenseMapInfo<clang::Ba<br>
>    }<br>
>  };<br>
>  <br>
> -// It's OK to treat BaseSubobject as a POD type.<br>
> -template <> struct isPodLike<clang::BaseSubobject> {<br>
> -  static const bool value = true;<br>
> -};<br>
> -<br>
>  } // namespace llvm<br>
>  <br>
>  #endif // LLVM_CLANG_AST_BASESUBOBJECT_H<br>
> <br>
> Modified: cfe/trunk/include/clang/AST/CharUnits.h<br>
> URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/AST/CharUnits.h?rev=351701&r1=351700&r2=351701&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/AST/CharUnits.h?rev=351701&r1=351700&r2=351701&view=diff</a><br>
> ==============================================================================<br>
> --- cfe/trunk/include/clang/AST/CharUnits.h (original)<br>
> +++ cfe/trunk/include/clang/AST/CharUnits.h Sun Jan 20 13:19:56 2019<br>
> @@ -237,10 +237,6 @@ template<> struct DenseMapInfo<clang::Ch<br>
>    }<br>
>  };<br>
>  <br>
> -template <> struct isPodLike<clang::CharUnits> {<br>
> -  static const bool value = true;<br>
> -};<br>
> -<br>
>  } // end namespace llvm<br>
>  <br>
>  #endif // LLVM_CLANG_AST_CHARUNITS_H<br>
> <br>
> Modified: cfe/trunk/include/clang/AST/DeclAccessPair.h<br>
> URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/AST/DeclAccessPair.h?rev=351701&r1=351700&r2=351701&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/AST/DeclAccessPair.h?rev=351701&r1=351700&r2=351701&view=diff</a><br>
> ==============================================================================<br>
> --- cfe/trunk/include/clang/AST/DeclAccessPair.h (original)<br>
> +++ cfe/trunk/include/clang/AST/DeclAccessPair.h Sun Jan 20 13:19:56 2019<br>
> @@ -60,12 +60,4 @@ public:<br>
>  };<br>
>  }<br>
>  <br>
> -// Take a moment to tell SmallVector that DeclAccessPair is POD.<br>
> -namespace llvm {<br>
> -template<typename> struct isPodLike;<br>
> -template<> struct isPodLike<clang::DeclAccessPair> {<br>
> -   static const bool value = true;<br>
> -};<br>
> -}<br>
> -<br>
>  #endif<br>
> <br>
> Modified: cfe/trunk/include/clang/AST/DeclarationName.h<br>
> URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/AST/DeclarationName.h?rev=351701&r1=351700&r2=351701&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/AST/DeclarationName.h?rev=351701&r1=351700&r2=351701&view=diff</a><br>
> ==============================================================================<br>
> --- cfe/trunk/include/clang/AST/DeclarationName.h (original)<br>
> +++ cfe/trunk/include/clang/AST/DeclarationName.h Sun Jan 20 13:19:56 2019<br>
> @@ -861,9 +861,6 @@ struct DenseMapInfo<clang::DeclarationNa<br>
>    }<br>
>  };<br>
>  <br>
> -template <><br>
> -struct isPodLike<clang::DeclarationName> { static const bool value = true; };<br>
> -<br>
>  } // namespace llvm<br>
>  <br>
>  #endif // LLVM_CLANG_AST_DECLARATIONNAME_H<br>
> <br>
> Modified: cfe/trunk/include/clang/AST/ExprObjC.h<br>
> URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/AST/ExprObjC.h?rev=351701&r1=351700&r2=351701&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/AST/ExprObjC.h?rev=351701&r1=351700&r2=351701&view=diff</a><br>
> ==============================================================================<br>
> --- cfe/trunk/include/clang/AST/ExprObjC.h (original)<br>
> +++ cfe/trunk/include/clang/AST/ExprObjC.h Sun Jan 20 13:19:56 2019<br>
> @@ -255,12 +255,6 @@ struct ObjCDictionaryElement {<br>
>  <br>
>  } // namespace clang<br>
>  <br>
> -namespace llvm {<br>
> -<br>
> -template <> struct isPodLike<clang::ObjCDictionaryElement> : std::true_type {};<br>
> -<br>
> -} // namespace llvm<br>
> -<br>
>  namespace clang {<br>
>  <br>
>  /// Internal struct for storing Key/value pair.<br>
> <br>
> Modified: cfe/trunk/include/clang/AST/GlobalDecl.h<br>
> URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/AST/GlobalDecl.h?rev=351701&r1=351700&r2=351701&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/AST/GlobalDecl.h?rev=351701&r1=351700&r2=351701&view=diff</a><br>
> ==============================================================================<br>
> --- cfe/trunk/include/clang/AST/GlobalDecl.h (original)<br>
> +++ cfe/trunk/include/clang/AST/GlobalDecl.h Sun Jan 20 13:19:56 2019<br>
> @@ -139,13 +139,6 @@ namespace llvm {<br>
>      }<br>
>    };<br>
>  <br>
> -  // GlobalDecl isn't *technically* a POD type. However, its copy constructor,<br>
> -  // copy assignment operator, and destructor are all trivial.<br>
> -  template <><br>
> -  struct isPodLike<clang::GlobalDecl> {<br>
> -    static const bool value = true;<br>
> -  };<br>
> -<br>
>  } // namespace llvm<br>
>  <br>
>  #endif // LLVM_CLANG_AST_GLOBALDECL_H<br>
> <br>
> Modified: cfe/trunk/include/clang/AST/Type.h<br>
> URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/AST/Type.h?rev=351701&r1=351700&r2=351701&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/AST/Type.h?rev=351701&r1=351700&r2=351701&view=diff</a><br>
> ==============================================================================<br>
> --- cfe/trunk/include/clang/AST/Type.h (original)<br>
> +++ cfe/trunk/include/clang/AST/Type.h Sun Jan 20 13:19:56 2019<br>
> @@ -94,9 +94,6 @@ namespace llvm {<br>
>      enum { NumLowBitsAvailable = clang::TypeAlignmentInBits };<br>
>    };<br>
>  <br>
> -  template <><br>
> -  struct isPodLike<clang::QualType> { static const bool value = true; };<br>
> -<br>
>  } // namespace llvm<br>
>  <br>
>  namespace clang {<br>
> <br>
> Modified: cfe/trunk/include/clang/Analysis/ProgramPoint.h<br>
> URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Analysis/ProgramPoint.h?rev=351701&r1=351700&r2=351701&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Analysis/ProgramPoint.h?rev=351701&r1=351700&r2=351701&view=diff</a><br>
> ==============================================================================<br>
> --- cfe/trunk/include/clang/Analysis/ProgramPoint.h (original)<br>
> +++ cfe/trunk/include/clang/Analysis/ProgramPoint.h Sun Jan 20 13:19:56 2019<br>
> @@ -777,9 +777,6 @@ static bool isEqual(const clang::Program<br>
>  <br>
>  };<br>
>  <br>
> -template <><br>
> -struct isPodLike<clang::ProgramPoint> { static const bool value = true; };<br>
> -<br>
>  } // end namespace llvm<br>
>  <br>
>  #endif<br>
> <br>
> Modified: cfe/trunk/include/clang/Basic/IdentifierTable.h<br>
> URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Basic/IdentifierTable.h?rev=351701&r1=351700&r2=351701&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Basic/IdentifierTable.h?rev=351701&r1=351700&r2=351701&view=diff</a><br>
> ==============================================================================<br>
> --- cfe/trunk/include/clang/Basic/IdentifierTable.h (original)<br>
> +++ cfe/trunk/include/clang/Basic/IdentifierTable.h Sun Jan 20 13:19:56 2019<br>
> @@ -938,9 +938,6 @@ struct DenseMapInfo<clang::Selector> {<br>
>    }<br>
>  };<br>
>  <br>
> -template <><br>
> -struct isPodLike<clang::Selector> { static const bool value = true; };<br>
> -<br>
>  template<><br>
>  struct PointerLikeTypeTraits<clang::Selector> {<br>
>    static const void *getAsVoidPointer(clang::Selector P) {<br>
> <br>
> Modified: cfe/trunk/include/clang/Basic/SourceLocation.h<br>
> URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Basic/SourceLocation.h?rev=351701&r1=351700&r2=351701&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Basic/SourceLocation.h?rev=351701&r1=351700&r2=351701&view=diff</a><br>
> ==============================================================================<br>
> --- cfe/trunk/include/clang/Basic/SourceLocation.h (original)<br>
> +++ cfe/trunk/include/clang/Basic/SourceLocation.h Sun Jan 20 13:19:56 2019<br>
> @@ -25,7 +25,6 @@<br>
>  namespace llvm {<br>
>  <br>
>  template <typename T> struct DenseMapInfo;<br>
> -template <typename T> struct isPodLike;<br>
>  <br>
>  } // namespace llvm<br>
>  <br>
> @@ -457,11 +456,6 @@ namespace llvm {<br>
>      }<br>
>    };<br>
>  <br>
> -  template <><br>
> -  struct isPodLike<clang::SourceLocation> { static const bool value = true; };<br>
> -  template <><br>
> -  struct isPodLike<clang::FileID> { static const bool value = true; };<br>
> -<br>
>    // Teach SmallPtrSet how to handle SourceLocation.<br>
>    template<><br>
>    struct PointerLikeTypeTraits<clang::SourceLocation> {<br>
> <br>
> Modified: cfe/trunk/include/clang/Lex/Token.h<br>
> URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Lex/Token.h?rev=351701&r1=351700&r2=351701&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Lex/Token.h?rev=351701&r1=351700&r2=351701&view=diff</a><br>
> ==============================================================================<br>
> --- cfe/trunk/include/clang/Lex/Token.h (original)<br>
> +++ cfe/trunk/include/clang/Lex/Token.h Sun Jan 20 13:19:56 2019<br>
> @@ -328,9 +328,4 @@ struct PPConditionalInfo {<br>
>  <br>
>  } // end namespace clang<br>
>  <br>
> -namespace llvm {<br>
> -  template <><br>
> -  struct isPodLike<clang::Token> { static const bool value = true; };<br>
> -} // end namespace llvm<br>
> -<br>
>  #endif // LLVM_CLANG_LEX_TOKEN_H<br>
> <br>
> Modified: cfe/trunk/include/clang/Sema/CodeCompleteConsumer.h<br>
> URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Sema/CodeCompleteConsumer.h?rev=351701&r1=351700&r2=351701&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Sema/CodeCompleteConsumer.h?rev=351701&r1=351700&r2=351701&view=diff</a><br>
> ==============================================================================<br>
> --- cfe/trunk/include/clang/Sema/CodeCompleteConsumer.h (original)<br>
> +++ cfe/trunk/include/clang/Sema/CodeCompleteConsumer.h Sun Jan 20 13:19:56 2019<br>
> @@ -655,14 +655,6 @@ public:<br>
>  <br>
>  } // namespace clang<br>
>  <br>
> -namespace llvm {<br>
> -<br>
> -template <> struct isPodLike<clang::CodeCompletionString::Chunk> {<br>
> -  static const bool value = true;<br>
> -};<br>
> -<br>
> -} // namespace llvm<br>
> -<br>
>  namespace clang {<br>
>  <br>
>  /// A builder class used to construct new code-completion strings.<br>
> <br>
> Modified: cfe/trunk/include/clang/Sema/Ownership.h<br>
> URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Sema/Ownership.h?rev=351701&r1=351700&r2=351701&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Sema/Ownership.h?rev=351701&r1=351700&r2=351701&view=diff</a><br>
> ==============================================================================<br>
> --- cfe/trunk/include/clang/Sema/Ownership.h (original)<br>
> +++ cfe/trunk/include/clang/Sema/Ownership.h Sun Jan 20 13:19:56 2019<br>
> @@ -128,9 +128,6 @@ namespace llvm {<br>
>      }<br>
>    };<br>
>  <br>
> -  template <class T><br>
> -  struct isPodLike<clang::OpaquePtr<T>> { static const bool value = true; };<br>
> -<br>
>  } // namespace llvm<br>
>  <br>
>  namespace clang {<br>
> <br>
> Modified: cfe/trunk/include/clang/StaticAnalyzer/Core/PathSensitive/SVals.h<br>
> URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/StaticAnalyzer/Core/PathSensitive/SVals.h?rev=351701&r1=351700&r2=351701&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/StaticAnalyzer/Core/PathSensitive/SVals.h?rev=351701&r1=351700&r2=351701&view=diff</a><br>
> ==============================================================================<br>
> --- cfe/trunk/include/clang/StaticAnalyzer/Core/PathSensitive/SVals.h (original)<br>
> +++ cfe/trunk/include/clang/StaticAnalyzer/Core/PathSensitive/SVals.h Sun Jan 20 13:19:56 2019<br>
> @@ -667,13 +667,4 @@ private:<br>
>  <br>
>  } // namespace clang<br>
>  <br>
> -namespace llvm {<br>
> -<br>
> -template <typename T> struct isPodLike;<br>
> -template <> struct isPodLike<clang::ento::SVal> {<br>
> -  static const bool value = true;<br>
> -};<br>
> -<br>
> -} // namespace llvm<br>
> -<br>
>  #endif // LLVM_CLANG_STATICANALYZER_CORE_PATHSENSITIVE_SVALS_H<br>
> <br>
> Modified: cfe/trunk/lib/AST/VTableBuilder.cpp<br>
> URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/AST/VTableBuilder.cpp?rev=351701&r1=351700&r2=351701&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/AST/VTableBuilder.cpp?rev=351701&r1=351700&r2=351701&view=diff</a><br>
> ==============================================================================<br>
> --- cfe/trunk/lib/AST/VTableBuilder.cpp (original)<br>
> +++ cfe/trunk/lib/AST/VTableBuilder.cpp Sun Jan 20 13:19:56 2019<br>
> @@ -846,6 +846,8 @@ private:<br>
>        : BaseOffset(CharUnits::Zero()),<br>
>        BaseOffsetInLayoutClass(CharUnits::Zero()),<br>
>        VTableIndex(0) { }<br>
> +<br>
> +    MethodInfo(MethodInfo const&) = default;<br>
>    };<br>
>  <br>
>    typedef llvm::DenseMap<const CXXMethodDecl *, MethodInfo> MethodInfoMapTy;<br>
> <br>
> Modified: cfe/trunk/lib/Sema/SemaChecking.cpp<br>
> URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Sema/SemaChecking.cpp?rev=351701&r1=351700&r2=351701&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Sema/SemaChecking.cpp?rev=351701&r1=351700&r2=351701&view=diff</a><br>
> ==============================================================================<br>
> --- cfe/trunk/lib/Sema/SemaChecking.cpp (original)<br>
> +++ cfe/trunk/lib/Sema/SemaChecking.cpp Sun Jan 20 13:19:56 2019<br>
> @@ -11662,12 +11662,12 @@ class SequenceChecker : public Evaluated<br>
>      class Seq {<br>
>        friend class SequenceTree;<br>
>  <br>
> -      unsigned Index = 0;<br>
> +      unsigned Index;<br>
>  <br>
>        explicit Seq(unsigned N) : Index(N) {}<br>
>  <br>
>      public:<br>
> -      Seq() = default;<br>
> +      Seq() : Index(0) {}<br>
>      };<br>
>  <br>
>      SequenceTree() { Values.push_back(Value(0)); }<br>
> <br>
> Modified: cfe/trunk/lib/StaticAnalyzer/Core/RegionStore.cpp<br>
> URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/StaticAnalyzer/Core/RegionStore.cpp?rev=351701&r1=351700&r2=351701&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/StaticAnalyzer/Core/RegionStore.cpp?rev=351701&r1=351700&r2=351701&view=diff</a><br>
> ==============================================================================<br>
> --- cfe/trunk/lib/StaticAnalyzer/Core/RegionStore.cpp (original)<br>
> +++ cfe/trunk/lib/StaticAnalyzer/Core/RegionStore.cpp Sun Jan 20 13:19:56 2019<br>
> @@ -130,10 +130,6 @@ namespace llvm {<br>
>      return os;<br>
>    }<br>
>  <br>
> -  template <typename T> struct isPodLike;<br>
> -  template <> struct isPodLike<BindingKey> {<br>
> -    static const bool value = true;<br>
> -  };<br>
>  } // end llvm namespace<br>
>  <br>
>  #ifndef NDEBUG<br>
> <br>
> Modified: cfe/trunk/test/Analysis/llvm-conventions.cpp<br>
> URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Analysis/llvm-conventions.cpp?rev=351701&r1=351700&r2=351701&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Analysis/llvm-conventions.cpp?rev=351701&r1=351700&r2=351701&view=diff</a><br>
> ==============================================================================<br>
> --- cfe/trunk/test/Analysis/llvm-conventions.cpp (original)<br>
> +++ cfe/trunk/test/Analysis/llvm-conventions.cpp Sun Jan 20 13:19:56 2019<br>
> @@ -152,8 +152,6 @@ inline bool operator>(StringRef LHS, Str<br>
>  inline bool operator>=(StringRef LHS, StringRef RHS);<br>
>  inline std::string &operator+=(std::string &buffer, StringRef string);<br>
>  hash_code hash_value(StringRef S);<br>
> -template <typename T> struct isPodLike;<br>
> -template <> struct isPodLike<StringRef> { static const bool value = true; };<br>
>  <br>
>  } // end of namespace llvm<br>
>  <br>
> <br>
> Modified: cfe/trunk/tools/libclang/Indexing.cpp<br>
> URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/tools/libclang/Indexing.cpp?rev=351701&r1=351700&r2=351701&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/tools/libclang/Indexing.cpp?rev=351701&r1=351700&r2=351701&view=diff</a><br>
> ==============================================================================<br>
> --- cfe/trunk/tools/libclang/Indexing.cpp (original)<br>
> +++ cfe/trunk/tools/libclang/Indexing.cpp Sun Jan 20 13:19:56 2019<br>
> @@ -93,9 +93,6 @@ typedef llvm::DenseSet<PPRegion> PPRegio<br>
>  } // end anonymous namespace<br>
>  <br>
>  namespace llvm {<br>
> -  template <> struct isPodLike<PPRegion> {<br>
> -    static const bool value = true;<br>
> -  };<br>
>  <br>
>    template <><br>
>    struct DenseMapInfo<PPRegion> {<br>
> <br>
> <br>
> _______________________________________________<br>
> cfe-commits mailing list<br>
> <a href="mailto:cfe-commits@lists.llvm.org" target="_blank">cfe-commits@lists.llvm.org</a><br>
> <a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits" rel="noreferrer" target="_blank">http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits</a><br>
> <br>
<br>
-- <br>
ROOT <a href="https://root.cern" rel="noreferrer" target="_blank">https://root.cern</a><br>
CERN EP-SFT, 1211 Geneva 23, Switzerland<br>
Phone: +41227678225<br>
<br>
_______________________________________________<br>
cfe-commits mailing list<br>
<a href="mailto:cfe-commits@lists.llvm.org" target="_blank">cfe-commits@lists.llvm.org</a><br>
<a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits" rel="noreferrer" target="_blank">http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits</a><br>
</blockquote></div>