1*67e74705SXin Li // RUN: %clang_cc1 -pedantic-errors -std=c++11 -emit-pch %s -o %t 2*67e74705SXin Li // RUN: %clang_cc1 -pedantic-errors -std=c++11 -include-pch %t -verify %s 3*67e74705SXin Li 4*67e74705SXin Li #ifndef HEADER_INCLUDED 5*67e74705SXin Li 6*67e74705SXin Li #define HEADER_INCLUDED 7*67e74705SXin Li 8*67e74705SXin Li using size_t = decltype(sizeof(int)); 9*67e74705SXin Li int operator"" _foo(const char *p, size_t); 10*67e74705SXin Li f(T t)11*67e74705SXin Litemplate<typename T> auto f(T t) -> decltype(t + ""_foo) { return 0; } 12*67e74705SXin Li 13*67e74705SXin Li #else 14*67e74705SXin Li 15*67e74705SXin Li int j = ""_foo; 16*67e74705SXin Li int k = f(0); 17*67e74705SXin Li int *l = f(&k); 18*67e74705SXin Li struct S {}; 19*67e74705SXin Li int m = f(S()); // expected-error {{no matching}} 20*67e74705SXin Li // expected-note@11 {{substitution failure}} 21*67e74705SXin Li 22*67e74705SXin Li #endif 23