; Test finding types by CompilerContext.
; RUN: llc %s -filetype=obj -o %t.o
; RUN: lldb-test symbols %t.o -find=type --language=C99 \
; RUN:   -compiler-context="Module:CModule,Module:SubModule,Struct:FromSubmoduleX" \
; RUN:   | FileCheck %s --check-prefix=NORESULTS
; RUN: lldb-test symbols %t.o -find=type --language=C++ \
; RUN:   -compiler-context="Module:CModule,Module:SubModule,Struct:FromSubmodule" \
; RUN:   | FileCheck %s --check-prefix=NORESULTS
; RUN: lldb-test symbols %t.o -find=type --language=C99 \
; RUN:   -compiler-context="Module:CModule,Module:SubModule,Struct:FromSubmodule" \
; RUN:   | FileCheck %s
; RUN: lldb-test symbols %t.o -find=type --language=C99 \
; RUN:   -compiler-context="Module:CModule,AnyModule:*,Struct:FromSubmodule" \
; RUN:   | FileCheck %s
; RUN: lldb-test symbols %t.o -find=type --language=C99 \
; RUN:   -compiler-context="AnyModule:*,Struct:FromSubmodule" \
; RUN:   | FileCheck %s
; RUN: lldb-test symbols %t.o -find=type --language=C99 \
; RUN:   -compiler-context="Module:CModule,Module:SubModule,AnyType:FromSubmodule" \
; RUN:   | FileCheck %s
;
; NORESULTS: Found 0 types
; CHECK: Found 1 types:
; CHECK: struct FromSubmodule {
; CHECK-NEXT:     unsigned int x;
; CHECK-NEXT:     unsigned int y;
; CHECK-NEXT:     unsigned int z;
; CHECK-NEXT: }

source_filename = "/t.c"
target datalayout = "e-m:o-i64:64-f80:128-n8:16:32:64-S128"
target triple = "x86_64-apple-macosx10.14.0"

!llvm.dbg.cu = !{!2}
!llvm.linker.options = !{}
!llvm.module.flags = !{!18, !19}
!llvm.ident = !{!22}

; This simulates the debug info for a Clang module.
!2 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, nameTableKind: GNU, retainedTypes: !{!11})
!3 = !DIFile(filename: "t.c", directory: "/")
!8 = !DIModule(scope: !9, name: "SubModule", includePath: "", isysroot: "/")
!9 = !DIModule(scope: null, name: "CModule", includePath: "", isysroot: "/")
!11 = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "FromSubmodule", scope: !8, file: !3, line: 1, size: 96, elements: !13)
!13 = !{!14, !16, !17}
!14 = !DIDerivedType(tag: DW_TAG_member, name: "x", scope: !11, file: !3, line: 2, baseType: !15, size: 32)
!15 = !DIBasicType(name: "unsigned int", size: 32, encoding: DW_ATE_unsigned)
!16 = !DIDerivedType(tag: DW_TAG_member, name: "y", scope: !11, file: !3, line: 2, baseType: !15, size: 32, offset: 32)
!17 = !DIDerivedType(tag: DW_TAG_member, name: "z", scope: !11, file: !3, line: 2, baseType: !15, size: 32, offset: 64)
!18 = !{i32 2, !"Dwarf Version", i32 4}
!19 = !{i32 2, !"Debug Info Version", i32 3}
!22 = !{!"clang version 10.0.0 (https://github.com/llvm/llvm-project 056f1b5cc7c2133f0cb3e30e7f24808d321096d7)"}
