1*7c860698SAlexey Bataev // RUN: %clang_cc1 -verify -fopenmp -x c++ -triple powerpc64le-unknown-linux -S -emit-llvm %s -o - -std=c++11 2>&1 | FileCheck %s 2*7c860698SAlexey Bataev // expected-no-diagnostics 3*7c860698SAlexey Bataev 4*7c860698SAlexey Bataev template <int __v> struct integral_constant { 5*7c860698SAlexey Bataev static constexpr int value = __v; 6*7c860698SAlexey Bataev }; 7*7c860698SAlexey Bataev 8*7c860698SAlexey Bataev template <typename _Tp, int v = 0, bool _IsArray = integral_constant<v>::value> 9*7c860698SAlexey Bataev struct decay { 10*7c860698SAlexey Bataev typedef int type; 11*7c860698SAlexey Bataev }; 12*7c860698SAlexey Bataev struct V { 13*7c860698SAlexey Bataev template <typename TArg0 = int, typename = typename decay<TArg0>::type> V(); 14*7c860698SAlexey Bataev }; 15*7c860698SAlexey Bataev int main() { 16*7c860698SAlexey Bataev #pragma omp target 17*7c860698SAlexey Bataev V v; 18*7c860698SAlexey Bataev return 0; 19*7c860698SAlexey Bataev } 20*7c860698SAlexey Bataev 21*7c860698SAlexey Bataev // CHECK: call void @__omp_offloading_{{.+}}_main_l16() 22