Home | History | Annotate | Download | only in CodeGenCXX
      1 // RUN: %clang_cc1 -emit-llvm %s -o - | FileCheck %s
      2 
      3 // This is a testcase for LLVM PR445, which was a problem where the
      4 // instantiation of callDefaultCtor was not being emitted correctly.
      5 
      6 // CHECK-NOT: declare{{.*}}callDefaultCtor
      7 struct Pass {};
      8 
      9 template<typename PassName>
     10 Pass *callDefaultCtor() { return new Pass(); }
     11 
     12 void foo(Pass *(*C)());
     13 
     14 struct basic_string {
     15   bool empty() const { return true; }
     16 };
     17 
     18 
     19 bool foo2(basic_string &X) {
     20   return X.empty();
     21 }
     22 void baz() { foo(callDefaultCtor<Pass>); }
     23