|  | // RUN: %clang_cc1 -fsyntax-only -triple i686-pc-win32 -verify %s | 
|  | // PR14993 | 
|  |  | 
|  | namespace test1 { | 
|  | inline void f();  // expected-warning{{inline function 'test1::f' is not defined}} | 
|  | void test() { f(); }  // expected-note{{used here}} | 
|  | } | 
|  |  | 
|  | namespace test2 { | 
|  | inline int f(); | 
|  | void test() { (void)sizeof(f()); } | 
|  | } | 
|  |  | 
|  | namespace test3 { | 
|  | void f();  // expected-warning{{inline function 'test3::f' is not defined}} | 
|  | inline void f(); | 
|  | void test() { f(); }  // expected-note{{used here}} | 
|  | } | 
|  |  | 
|  | namespace test4 { | 
|  | inline void error_on_zero(int);    // expected-warning{{inline function 'test4::error_on_zero' is not defined}} | 
|  | inline void error_on_zero(char*) {} | 
|  | void test() { error_on_zero(0); }  // expected-note{{used here}} | 
|  | } | 
|  |  | 
|  | namespace test5 { | 
|  | struct X { void f(); }; | 
|  | void test(X &x) { x.f(); } | 
|  | } | 
|  |  | 
|  | namespace test6 { | 
|  | struct X { inline void f(); };  // expected-warning{{inline function 'test6::X::f' is not defined}} | 
|  | void test(X &x) { x.f(); }  // expected-note{{used here}} | 
|  | } | 
|  |  | 
|  | namespace test7 { | 
|  | void f();  // expected-warning{{inline function 'test7::f' is not defined}} | 
|  | void test() { f(); } // no used-here note. | 
|  | inline void f(); | 
|  | } | 
|  |  | 
|  | namespace test8 { | 
|  | inline void foo() __attribute__((gnu_inline)); | 
|  | void test() { foo(); } | 
|  | } | 
|  |  | 
|  | namespace test9 { | 
|  | void foo(); | 
|  | void test() { foo(); } | 
|  | inline void foo() __attribute__((gnu_inline)); | 
|  | } | 
|  |  | 
|  | namespace test10 { | 
|  | inline void foo(); | 
|  | void test() { foo(); } | 
|  | inline void foo() __attribute__((gnu_inline)); | 
|  | } | 
|  |  | 
|  | namespace test11 { | 
|  | inline void foo() __attribute__((dllexport)); | 
|  | inline void bar() __attribute__((dllimport)); | 
|  | void test() { foo(); bar(); } | 
|  | } |