1651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines// RUN: %clang_cc1 -emit-llvm -g %s -o - | FileCheck %s 2651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines// Test that the line table info for Foo<T>::bar() is pointing to the 3651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines// right header file. 4651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines// CHECK: define{{.*}}bar 5651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines// CHECK-NOT: define 6651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines// CHECK: ret {{.*}}, !dbg [[DBG:.*]] 7651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines// CHECK: [[HPP:.*]] = metadata !{metadata !"./template.hpp", 8651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines// CHECK: [[SP:.*]] = metadata !{i32 786478, metadata [[HPP]],{{.*}}[ DW_TAG_subprogram ] [line 22] [def] [bar] 9651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines// We shouldn't need a lexical block for this function. 10651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines// CHECK: [[DBG]] = metadata !{i32 23, i32 0, metadata [[SP]], null} 11651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines 12651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines 13651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines# 1 "./template.h" 1 14651f13cea278ec967336033dd032faef0e9fc2ecStephen Hinestemplate <typename T> 15651f13cea278ec967336033dd032faef0e9fc2ecStephen Hinesclass Foo { 16651f13cea278ec967336033dd032faef0e9fc2ecStephen Hinespublic: 17651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines int bar(); 18651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines}; 19651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines# 21 "./template.hpp" 20651f13cea278ec967336033dd032faef0e9fc2ecStephen Hinestemplate <typename T> 21651f13cea278ec967336033dd032faef0e9fc2ecStephen Hinesint Foo<T>::bar() { 22651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines return 23; 23651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines} 24651f13cea278ec967336033dd032faef0e9fc2ecStephen Hinesint main (int argc, const char * argv[]) 25651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines{ 26651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines Foo<int> f; 27651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines return f.bar(); 28651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines} 29