123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107 |
- #version 400 core
- in double d; // ERROR, no doubles
- in dvec3 d3; // ERROR, no doubles
- in dmat4 dm4; // ERROR, no doubles
- // function selection under type conversion
- void foo1(double a, uint b) {}
- void foo1(double a, int b) {}
- void foo1(double a, float b) {}
- void foo1(double a, double b){}
- void foo2(double a, float b) {}
- void foo2(double a, double b){}
- void foo3(double a, float b) {}
- void foo3(float a, double b) {}
- void ftd( int, float, double) {}
- void ftd( uint, float, double) {}
- void ftd(float, double, double) {}
- void main()
- {
- double d;
- uint u;
- int i;
- float f;
- foo1(d, d);
- foo1(d, u);
- foo1(d, i);
- foo1(d, f);
- foo1(f, d);
- foo1(f, u);
- foo1(f, i);
- foo1(f, f);
- foo1(u, d);
- foo1(u, u);
- foo1(u, i);
- foo1(u, f);
- foo1(i, d);
- foo1(i, u);
- foo1(i, i);
- foo1(i, f);
- foo2(d, d);
- foo2(d, u);
- foo2(d, i);
- foo2(d, f);
- foo2(f, d);
- foo2(f, u);
- foo2(f, i);
- foo2(f, f);
- foo2(u, d);
- foo2(u, u);
- foo2(u, i);
- foo2(u, f);
- foo2(i, d);
- foo2(i, u);
- foo2(i, i);
- foo2(i, f);
- foo3(d, d); // ERROR, no match
- foo3(d, u);
- foo3(d, i);
- foo3(d, f);
- foo3(f, d);
- foo3(f, u); // ERROR, ambiguous
- foo3(f, i); // ERROR, ambiguous
- foo3(f, f); // ERROR, ambiguous
- foo3(u, d);
- foo3(u, u); // ERROR, ambiguous
- foo3(u, i); // ERROR, ambiguous
- foo3(u, f); // ERROR, ambiguous
- foo3(i, d);
- foo3(i, u); // ERROR, ambiguous
- foo3(i, i); // ERROR, ambiguous
- foo3(i, f); // ERROR, ambiguous
- ftd(i, f, f);
- ftd(u, f, f);
- }
- void itf(int, float, int);
- void itf(int, double, int);
- void tf()
- {
- double d;
- uint u;
- int i;
- float f;
-
- itf(i, i, i);
- itf(i, u, i);
- }
|