blob: c154e3baba4f820a5c0376ec74812ed3a3f7808f [file] [log] [blame]
Douglas Gregor3a348c82011-07-14 04:54:23 +00001// RUN: %clang_cc1 -fsyntax-only -verify %s
2
3// FIXME: The diagnostics and recovery here are very, very poor.
4
5// PR10355
Kaelyn Uhrainf0c1d8f2011-08-03 20:36:05 +00006template<typename T> void template_id1() { // expected-note {{'template_id1' declared here}} \
John McCall6dbba4f2011-10-11 23:14:30 +00007 // expected-note {{possible target for call}}
Kaelyn Uhrainf0c1d8f2011-08-03 20:36:05 +00008 template_id2<> t; // expected-error {{no template named 'template_id2'; did you mean 'template_id1'?}} \
9 // expected-error {{expected ';' after expression}} \
John McCall6dbba4f2011-10-11 23:14:30 +000010 // expected-error {{reference to overloaded function could not be resolved; did you mean to call it?}} \
Kaelyn Uhrainf0c1d8f2011-08-03 20:36:05 +000011 // expected-error {{use of undeclared identifier 't'}}
Douglas Gregor3a348c82011-07-14 04:54:23 +000012 }
Douglas Gregor01798682012-03-26 16:54:18 +000013
14// FIXME: It would be nice if we could get this correction right.
15namespace PR12297 {
16 namespace A {
17 typedef short T;
18
19 namespace B {
20 typedef short T;
21
Kaelyn Uhrain6d858d92012-04-03 18:20:11 +000022 T global(); // expected-note {{'A::B::global' declared here}}
Douglas Gregor01798682012-03-26 16:54:18 +000023 }
24 }
25
26 using namespace A::B;
27
Kaelyn Uhrain6d858d92012-04-03 18:20:11 +000028 T A::global(); // expected-error {{out-of-line definition of 'global' does not match any declaration in namespace 'PR12297::A'; did you mean 'A::B::global'?}}
Douglas Gregor01798682012-03-26 16:54:18 +000029}