]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - test/CodeGenCXX/linetable-fnbegin.cpp
Vendor import of clang trunk r238337:
[FreeBSD/FreeBSD.git] / test / CodeGenCXX / linetable-fnbegin.cpp
1 // RUN: %clang_cc1 -emit-llvm -g %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:.*]] = !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 }