xref: /minix3/external/bsd/llvm/dist/clang/test/CodeGenCXX/enable_if.cpp (revision 0a6a1f1d05b60e214de2f05a7310ddd1f0e590e7)
1*0a6a1f1dSLionel Sambuc // RUN: %clang_cc1 -emit-llvm %s -o - -triple=x86_64-pc-linux-gnu| FileCheck %s
2*0a6a1f1dSLionel Sambuc // Test itanium mangling for attribute enable_if
3*0a6a1f1dSLionel Sambuc 
4*0a6a1f1dSLionel Sambuc // CHECK: _Z5test1Ua9enable_ifIXeqfL0p_Li1EEEi
test1(int i)5*0a6a1f1dSLionel Sambuc void test1(int i) __attribute__((enable_if(i == 1, ""))) {}
6*0a6a1f1dSLionel Sambuc 
7*0a6a1f1dSLionel Sambuc void ext();
8*0a6a1f1dSLionel Sambuc // CHECK: _Z5test2Ua9enable_ifIXneadL_Z3extvELi0EEEi
test2(int i)9*0a6a1f1dSLionel Sambuc void test2(int i) __attribute__((enable_if(&ext != 0, ""))) {}
10*0a6a1f1dSLionel Sambuc 
11*0a6a1f1dSLionel Sambuc // CHECK: _Z5test3Ua9enable_ifIXeqfL0p_Li1EEXeqfL0p0_Li2EEEii
test3(int i,int j)12*0a6a1f1dSLionel Sambuc void test3(int i, int j) __attribute__((enable_if(i == 1, ""), enable_if(j == 2, ""))) {}
13*0a6a1f1dSLionel Sambuc 
14*0a6a1f1dSLionel Sambuc // CHECK: _ZN5test4IdE1fEUa9enable_ifIXeqfL0p_Li1EEXeqfL0p0_Li2EEEi
15*0a6a1f1dSLionel Sambuc template <typename T>
16*0a6a1f1dSLionel Sambuc class test4 {
17*0a6a1f1dSLionel Sambuc   virtual void f(int i, int j) __attribute__((enable_if(i == 1, ""))) __attribute__((enable_if(j == 2, "")));
18*0a6a1f1dSLionel Sambuc };
19*0a6a1f1dSLionel Sambuc 
20*0a6a1f1dSLionel Sambuc template class test4<double>;
21