Home | History | Annotate | Download | only in CodeGenCXX
      1 // RUN: %clang_cc1 -emit-llvm -debug-info-kind=limited %s -o - | FileCheck %s
      2 // Test that the line table info for Foo<T>::bar() is pointing to the
      3 // right header file.
      4 // CHECK: define{{.*}}bar
      5 // CHECK-NOT: define
      6 // CHECK: ret {{.*}}, !dbg [[DBG:.*]]
      7 // CHECK: [[HPP:.*]] = !DIFile(filename: "./template.hpp",
      8 // CHECK: [[SP:.*]] = distinct !DISubprogram(name: "bar",
      9 // CHECK-SAME:                               file: [[HPP]], line: 22
     10 // CHECK-SAME:                               isDefinition: true
     11 // We shouldn't need a lexical block for this function.
     12 // CHECK: [[DBG]] = !DILocation(line: 23, scope: [[SP]])
     13 
     14 
     15 # 1 "./template.h" 1
     16 template <typename T>
     17 class Foo {
     18 public:
     19   int bar();
     20 };
     21 # 21 "./template.hpp"
     22 template <typename T>
     23 int Foo<T>::bar() {
     24   return 23;
     25 }
     26 int main (int argc, const char * argv[])
     27 {
     28   Foo<int> f;
     29   return f.bar();
     30 }
     31