Mercurial > hg > CbC > CbC_llvm
view clang/test/SemaTemplate/instantiate-call.cpp @ 207:2e18cbf3894f
LLVM12
author | Shinji KONO <kono@ie.u-ryukyu.ac.jp> |
---|---|
date | Tue, 08 Jun 2021 06:07:14 +0900 |
parents | 1d019706d866 |
children |
line wrap: on
line source
// RUN: %clang_cc1 -fsyntax-only -verify %s namespace N1 { struct X0 { }; int& f0(X0); } namespace N2 { char& f0(char); template<typename T, typename Result> struct call_f0 { void test_f0(T t) { Result result = f0(t); } }; } template struct N2::call_f0<int, char&>; template struct N2::call_f0<N1::X0, int&>; namespace N3 { template<typename T, typename Result> struct call_f0 { void test_f0(T t) { Result &result = f0(t); // expected-error {{undeclared identifier}} \ expected-error {{neither visible in the template definition nor found by argument-dependent lookup}} } }; } template struct N3::call_f0<int, char&>; // expected-note{{instantiation}} template struct N3::call_f0<N1::X0, int&>; short& f0(char); // expected-note {{should be declared prior to the call site}} namespace N4 { template<typename T, typename Result> struct call_f0 { void test_f0(T t) { Result &result = f0(t); } }; } template struct N4::call_f0<int, short&>; template struct N4::call_f0<N1::X0, int&>; template struct N3::call_f0<int, short&>; // expected-note{{instantiation}} // FIXME: test overloaded function call operators, calls to member // functions, etc.