| // RUN: %target-swift-frontend -primary-file %s -emit-ir -g -o - | %FileCheck %s |
| // RUN: %target-swift-frontend -primary-file %s -emit-ir -gdwarf-types -o - \ |
| // RUN: | %FileCheck %s --check-prefix=DWARF |
| |
| // Don't emit a line number for tuple types. They are unnamed |
| // and have no declaration, so the line number is nonsensical. |
| // CHECK: !DICompositeType(tag: DW_TAG_structure_type, name: "_T0Si_SftD" |
| // CHECK-NOT: line: |
| // CHECK-NEXT: = |
| let tuple1 : (Int, Float) = (1, 2.89) |
| |
| // Tuple types. |
| var tuple2: (Double, Bool) = (1, true) |
| // DWARF: !DIGlobalVariable(name: "tuple2",{{.*}} type: ![[TUPTY:[^,)]+]] |
| // DWARF: ![[TUPTY]] = !DICompositeType(tag: DW_TAG_structure_type, |
| // DWARF-SAME: elements: ![[ELEMS:[0-9]+]] |
| // DWARF: ![[ELEMS]] = !{![[MD:[0-9]+]], ![[MB:[0-9]+]]} |
| // DWARF: ![[MD]] = !DIDerivedType(tag: DW_TAG_member |
| // DWARF-SAME: baseType: ![[DBL:[0-9]+]] |
| // DWARF: ![[DBL]] = !DICompositeType({{.*}}, name: "Double" |
| // DWARF: ![[MB]] = !DIDerivedType(tag: DW_TAG_member, |
| // DWARF-SAME: baseType: ![[B:[0-9]+]] |
| // DWARF: ![[B]] = !DICompositeType({{.*}}, name: "Bool" |
| func myprint(_ p: (i: Int, b: Bool)) { |
| print("\(p.i) -> \(p.b)") |
| } |