gcc 5.4 insists on template specialization to be in a namespace polly { ... }
block, instead of being prefixed with 'polly::'. Error message:
root/src/llvm/tools/polly/lib/Support/GICHelper.cpp:203:54: error: specialization of ‘template<class T> void polly::IslPtr<T>::dump() const’ in different namespace [-fpermissive]
template <> void polly::IslPtr<isl_##TYPE>::dump() const { \
^
msvc14 and clang 3.8 did not complain.
llvm-svn: 282874
}
#define DEFINE_ISLPTR(TYPE) \
- template <> void polly::IslPtr<isl_##TYPE>::dump() const { \
+ template <> void IslPtr<isl_##TYPE>::dump() const { \
isl_##TYPE##_dump(Obj); \
} \
- template <> void polly::NonowningIslPtr<isl_##TYPE>::dump() const { \
+ template <> void NonowningIslPtr<isl_##TYPE>::dump() const { \
isl_##TYPE##_dump(Obj); \
}
+namespace polly {
DEFINE_ISLPTR(val)
DEFINE_ISLPTR(space)
DEFINE_ISLPTR(basic_map)
// DEFINE_ISLPTR(union_pw_aff) /* There is no isl_union_pw_aff_dump() */
DEFINE_ISLPTR(multi_union_pw_aff)
DEFINE_ISLPTR(union_pw_multi_aff)
+}
void polly::foreachElt(NonowningIslPtr<isl_union_map> UMap,
const std::function<void(IslPtr<isl_map> Map)> &F) {