16bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines// RUN: %clang -g -std=c++11 -S -emit-llvm %s -o - | FileCheck %s 26bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines 36bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hinestemplate<typename T> 46bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hinesstruct foo { 56bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines}; 66bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hinesnamespace x { 76bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines// splitting these over multiple lines to make sure the right token is used for 86bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines// the location 96bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hinestemplate<typename T> 106bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hinesusing 116bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines# 42 126bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hinesbar 136bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines= foo<T*>; 146bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines} 156bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines 163ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainar// CHECK: !MDGlobalVariable(name: "bi",{{.*}} type: [[BINT:![0-9]+]] 173ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainar// CHECK: [[BINT]] = !MDDerivedType(tag: DW_TAG_typedef, name: "bar<int>" 183ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainar// CHECK-SAME: line: 42, 196bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hinesx::bar<int> bi; 203ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainar// CHECK: !MDGlobalVariable(name: "bf",{{.*}} type: [[BFLOAT:![0-9]+]] 213ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainar// CHECK: [[BFLOAT]] = !MDDerivedType(tag: DW_TAG_typedef, name: "bar<float>" 226bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hinesx::bar<float> bf; 236bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines 246bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hinesusing 253ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainar// CHECK: !MDGlobalVariable(name: "n",{{.*}} type: [[NARF:![0-9]+]] 266bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines# 142 273ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainarnarf // CHECK: [[NARF]] = !MDDerivedType(tag: DW_TAG_typedef, name: "narf" 283ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainar// CHECK-SAME: line: 142 296bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines= int; 306bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hinesnarf n; 316bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines 326bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hinestemplate <typename T> 336bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hinesusing tv = void; 343ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainar// CHECK: !MDDerivedType(tag: DW_TAG_typedef, name: "tv<int>" 356bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hinestv<int> *tvp; 366bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines 376bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hinesusing v = void; 383ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainar// CHECK: !MDDerivedType(tag: DW_TAG_typedef, name: "v" 396bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hinesv *vp; 40