brintos

brintos / llvm-project-archived public Read only

0
0
Text · 2.1 KiB · 21c6b5d Raw
69 lines · cpp
1// RUN: %clang_cc1 -fsyntax-only -triple i686-pc-win32 -verify -std=c++11 %s2// PR149933 4namespace test1 {5  inline void f();  // expected-warning{{inline function 'test1::f' is not defined}}6  void test() { f(); }  // expected-note{{used here}}7}8 9namespace test2 {10  inline int f();11  void test() { (void)sizeof(f()); }12}13 14namespace test3 {15  void f();  // expected-warning{{inline function 'test3::f' is not defined}}16  inline void f();17  void test() { f(); }  // expected-note{{used here}}18}19 20namespace test4 {21  inline void error_on_zero(int);    // expected-warning{{inline function 'test4::error_on_zero' is not defined}}22  inline void error_on_zero(char*) {}23  void test() { error_on_zero(0); }  // expected-note{{used here}}24}25 26namespace test5 {27  struct X { void f(); };28  void test(X &x) { x.f(); }29}30 31namespace test6 {32  struct X { inline void f(); };  // expected-warning{{inline function 'test6::X::f' is not defined}}33  void test(X &x) { x.f(); }  // expected-note{{used here}}34}35 36namespace test7 {37  void f();  // expected-warning{{inline function 'test7::f' is not defined}}38  void test() { f(); } // no used-here note.39  inline void f();40}41 42namespace test8 {43  inline void foo() __attribute__((gnu_inline)); // expected-warning {{'gnu_inline' attribute without 'extern' in C++ treated as externally available, this changed in Clang 10}}44  void test() { foo(); }45}46 47namespace test9 {48  void foo();49  void test() { foo(); }50  inline void foo() __attribute__((gnu_inline)); // expected-warning {{'gnu_inline' attribute without 'extern' in C++ treated as externally available, this changed in Clang 10}}51}52 53namespace test10 {54  inline void foo();55  void test() { foo(); }56  inline void foo() __attribute__((gnu_inline)); // expected-warning {{'gnu_inline' attribute without 'extern' in C++ treated as externally available, this changed in Clang 10}}57}58 59namespace test11 {60  inline void foo() __attribute__((dllexport));61  inline void bar() __attribute__((dllimport));62  void test() { foo(); bar(); }63}64 65namespace test12 {66  template<typename> constexpr int _S_chk(int *);67  decltype(_S_chk<int>(nullptr)) n;68}69