| // RUN: %clang_cc1 -fsyntax-only %s | |
| template<typename T, int N> | |
| struct X0 { | |
| const char *f0(bool Cond) { | |
| return Cond? "honk" : N; | |
| } | |
| const char *f1(bool Cond) { | |
| return Cond? N : "honk"; | |
| } | |
| bool f2(const char *str) { | |
| return str == N; | |
| } | |
| }; | |
| // PR4996 | |
| template<unsigned I> int f0() { | |
| return __builtin_choose_expr(I, 0, 1); | |
| } | |
| // PR5041 | |
| struct A { }; | |
| template <typename T> void f(T *t) | |
| { | |
| (void)static_cast<void*>(static_cast<A*>(t)); | |
| } |