Features: Record initializer list support for Intel 14 and above

Features recorded by commit v3.6.0-rc1~120^2~5 (Features: Record
standards and features for Intel C++ on UNIX, 2016-04-28) for the Intel
compiler left out initializer list support because our test case in
`Tests/CompileFeatures/cxx_generalized_initializers.cpp` caused an
internal compiler error.  It turns out this is because the Intel
compiler asserts the `initializer_list` constructor signatures to verify
that they match its own `<initializer_list>` header.  It was our dummy
implementation used to test the language feature without any headers
that caused the ICE.  Revise it to use a constructor signature accepted
by the Intel compiler.

Fixes: #17829
This commit is contained in:
Brad King
2018-03-15 09:13:19 -04:00
parent c5541cf0da
commit fc96d99c3e
2 changed files with 7 additions and 5 deletions
@@ -11,11 +11,17 @@ class initializer_list
const _E* __begin_;
size_t __size_;
#ifdef __INTEL_COMPILER
// The Intel compiler internally asserts the constructor overloads, so
// reproduce the constructor used in its <initializer_list> header.
initializer_list(const _E*, size_t) {}
#else
public:
template <typename T1, typename T2>
initializer_list(T1, T2)
{
}
#endif
};
}