diff options
Diffstat (limited to 'llvm/test')
38 files changed, 405 insertions, 14 deletions
diff --git a/llvm/test/DebugInfo/COFF/anonymous-struct.ll b/llvm/test/DebugInfo/COFF/anonymous-struct.ll index 7bd857e0924..3b31f23fd2e 100644 --- a/llvm/test/DebugInfo/COFF/anonymous-struct.ll +++ b/llvm/test/DebugInfo/COFF/anonymous-struct.ll @@ -1,4 +1,5 @@ ; RUN: llc < %s -filetype=obj | llvm-readobj - --codeview | FileCheck %s +; RUN: llc < %s | llvm-mc -filetype=obj --triple=i686-windows | llvm-readobj - --codeview | FileCheck %s ; C++ source to regenerate: ; struct S { diff --git a/llvm/test/DebugInfo/COFF/big-type.ll b/llvm/test/DebugInfo/COFF/big-type.ll index 67059eeab0c..1e1e8bc9c91 100644 --- a/llvm/test/DebugInfo/COFF/big-type.ll +++ b/llvm/test/DebugInfo/COFF/big-type.ll @@ -1,4 +1,5 @@ ; RUN: llc -filetype=obj < %s | llvm-readobj - --codeview | FileCheck %s +; RUN: llc < %s | llvm-mc -filetype=obj --triple=x86_64-windows | llvm-readobj - --codeview | FileCheck %s ; We need three continuation records for this. diff --git a/llvm/test/DebugInfo/COFF/class-options-common.ll b/llvm/test/DebugInfo/COFF/class-options-common.ll index e832328f5c3..46350552e07 100644 --- a/llvm/test/DebugInfo/COFF/class-options-common.ll +++ b/llvm/test/DebugInfo/COFF/class-options-common.ll @@ -1,4 +1,5 @@ ; RUN: llc < %s -filetype=obj | llvm-readobj - --codeview | FileCheck %s +; RUN: llc < %s | llvm-mc -filetype=obj --triple=x86_64-windows | llvm-readobj - --codeview | FileCheck %s ; ; Command to generate function-options.ll ; $ clang++ class-options-common.cpp -S -emit-llvm -g -gcodeview -o class-options-common.ll diff --git a/llvm/test/DebugInfo/COFF/const-unnamed-member.ll b/llvm/test/DebugInfo/COFF/const-unnamed-member.ll index 1dfe885a766..5a012ce49bc 100644 --- a/llvm/test/DebugInfo/COFF/const-unnamed-member.ll +++ b/llvm/test/DebugInfo/COFF/const-unnamed-member.ll @@ -1,4 +1,5 @@ ; RUN: llc -filetype=obj < %s | llvm-readobj --codeview - | FileCheck %s +; RUN: llc < %s | llvm-mc -filetype=obj --triple=i686-windows | llvm-readobj --codeview - | FileCheck %s ; Objective-C++ source demonstrating the issue: ; void (^b)(void) = []() {}; diff --git a/llvm/test/DebugInfo/COFF/defer-complete-type.ll b/llvm/test/DebugInfo/COFF/defer-complete-type.ll index 3ece1fd8cc6..8b4e57afaa2 100644 --- a/llvm/test/DebugInfo/COFF/defer-complete-type.ll +++ b/llvm/test/DebugInfo/COFF/defer-complete-type.ll @@ -1,4 +1,5 @@ ; RUN: llc < %s -filetype=obj | llvm-readobj - --codeview | FileCheck %s +; RUN: llc < %s | llvm-mc -filetype=obj --triple=x86_64-windows | llvm-readobj - --codeview | FileCheck %s ; Both A and B should get forward declarations and complete definitions for this ; example. diff --git a/llvm/test/DebugInfo/COFF/enum-co.ll b/llvm/test/DebugInfo/COFF/enum-co.ll index 2059918ba84..bdd4d0f70bd 100644 --- a/llvm/test/DebugInfo/COFF/enum-co.ll +++ b/llvm/test/DebugInfo/COFF/enum-co.ll @@ -1,4 +1,5 @@ ; RUN: llc < %s -filetype=obj | llvm-readobj - --codeview | FileCheck %s +; RUN: llc < %s | llvm-mc -filetype=obj --triple=x86_64-windows | llvm-readobj - --codeview | FileCheck %s ; Command to generate enum-co.ll ; $ clang++ enum-co.cpp -S -emit-llvm -g -gcodeview -o enum-co.ll diff --git a/llvm/test/DebugInfo/COFF/enum.ll b/llvm/test/DebugInfo/COFF/enum.ll index 15bbce0d468..6580c512371 100644 --- a/llvm/test/DebugInfo/COFF/enum.ll +++ b/llvm/test/DebugInfo/COFF/enum.ll @@ -1,4 +1,5 @@ ; RUN: llc < %s -filetype=obj | llvm-readobj - --codeview | FileCheck %s +; RUN: llc < %s | llvm-mc -filetype=obj --triple=i686-windows | llvm-readobj - --codeview | FileCheck %s ; Generated from the following C++ source: ; enum E : int { BLAH }; diff --git a/llvm/test/DebugInfo/COFF/function-options.ll b/llvm/test/DebugInfo/COFF/function-options.ll index 50058dec943..76831e7d488 100644 --- a/llvm/test/DebugInfo/COFF/function-options.ll +++ b/llvm/test/DebugInfo/COFF/function-options.ll @@ -1,4 +1,5 @@ ; RUN: llc < %s -filetype=obj | llvm-readobj - --codeview | FileCheck %s +; RUN: llc < %s | llvm-mc -filetype=obj --triple=x86_64-windows | llvm-readobj - --codeview | FileCheck %s ; ; Command to generate function-options.ll ; $ clang++ function-options.cpp -S -emit-llvm -g -gcodeview -o function-options.ll diff --git a/llvm/test/DebugInfo/COFF/globals.ll b/llvm/test/DebugInfo/COFF/globals.ll index 22f3f3238f8..a9a437db739 100644 --- a/llvm/test/DebugInfo/COFF/globals.ll +++ b/llvm/test/DebugInfo/COFF/globals.ll @@ -1,5 +1,6 @@ ; RUN: llc < %s | FileCheck %s --check-prefix=ASM ; RUN: llc < %s -filetype=obj | llvm-readobj - --codeview | FileCheck %s --check-prefix=OBJ +; RUN: llc < %s | llvm-mc -filetype=obj --triple=x86_64-windows | llvm-readobj - --codeview | FileCheck %s --check-prefix=OBJ ; RUN: llc < %s -filetype=obj | obj2yaml | FileCheck %s --check-prefix=YAML ; C++ source to regenerate: diff --git a/llvm/test/DebugInfo/COFF/inheritance.ll b/llvm/test/DebugInfo/COFF/inheritance.ll index 2e10a10cc4c..b2f487a8f35 100644 --- a/llvm/test/DebugInfo/COFF/inheritance.ll +++ b/llvm/test/DebugInfo/COFF/inheritance.ll @@ -1,4 +1,5 @@ ; RUN: llc < %s -filetype=obj -o - | llvm-readobj - --codeview | FileCheck %s +; RUN: llc < %s -o - | llvm-mc -filetype=obj --triple=x86_64-windows | llvm-readobj - --codeview | FileCheck %s ; C++ source to regenerate: ; $ cat t.cpp diff --git a/llvm/test/DebugInfo/COFF/inlining-padding.ll b/llvm/test/DebugInfo/COFF/inlining-padding.ll index 1b2d1138be3..404ff6df4b3 100644 --- a/llvm/test/DebugInfo/COFF/inlining-padding.ll +++ b/llvm/test/DebugInfo/COFF/inlining-padding.ll @@ -1,4 +1,5 @@ ; RUN: llc < %s -filetype=obj -o - | llvm-readobj --codeview --codeview-subsection-bytes | FileCheck %s +; RUN: llc < %s -o - | llvm-mc -filetype=obj --triple=x86_64-windows | llvm-readobj --codeview --codeview-subsection-bytes | FileCheck %s ; Check how we pad out the LF_FUNC_ID records. The 00F3F2F1 bytes in LeafData are ; what's interesting here. diff --git a/llvm/test/DebugInfo/COFF/inlining-same-name.ll b/llvm/test/DebugInfo/COFF/inlining-same-name.ll index 4bca6f7d262..5267b478775 100644 --- a/llvm/test/DebugInfo/COFF/inlining-same-name.ll +++ b/llvm/test/DebugInfo/COFF/inlining-same-name.ll @@ -1,4 +1,5 @@ ; RUN: llc -mtriple=x86_64-windows-msvc < %s -filetype=obj -o - | llvm-readobj - --codeview | FileCheck %s +; RUN: llc -mtriple=x86_64-windows-msvc < %s -o - | llvm-mc -filetype=obj --triple=x86_64-windows | llvm-readobj - --codeview | FileCheck %s ; We should only get one func id record, and both inlinees should point to it, ; even though there are two DISubprograms. diff --git a/llvm/test/DebugInfo/COFF/inlining.ll b/llvm/test/DebugInfo/COFF/inlining.ll index 64e1253dce3..981ae5aad8e 100644 --- a/llvm/test/DebugInfo/COFF/inlining.ll +++ b/llvm/test/DebugInfo/COFF/inlining.ll @@ -81,8 +81,6 @@ ; ASM: # Arguments [ ; ASM: # ] ; ASM: # } -; ASM: .byte 0x06, 0x00, 0x01, 0x12 -; ASM: .byte 0x00, 0x00, 0x00, 0x00 ; ASM: # Procedure (0x1001) { ; ASM: # TypeLeafKind: LF_PROCEDURE (0x1008) ; ASM: # ReturnType: void (0x3) @@ -92,30 +90,18 @@ ; ASM: # NumParameters: 0 ; ASM: # ArgListType: () (0x1000) ; ASM: # } -; ASM: .byte 0x0e, 0x00, 0x08, 0x10 -; ASM: .byte 0x03, 0x00, 0x00, 0x00 -; ASM: .byte 0x00, 0x00, 0x00, 0x00 -; ASM: .byte 0x00, 0x10, 0x00, 0x00 ; ASM: # FuncId (0x1002) { ; ASM: # TypeLeafKind: LF_FUNC_ID (0x1601) ; ASM: # ParentScope: 0x0 ; ASM: # FunctionType: void () (0x1001) ; ASM: # Name: bar ; ASM: # } -; ASM: .byte 0x0e, 0x00, 0x01, 0x16 -; ASM: .byte 0x00, 0x00, 0x00, 0x00 -; ASM: .byte 0x01, 0x10, 0x00, 0x00 -; ASM: .byte 0x62, 0x61, 0x72, 0x00 ; ASM: # FuncId (0x1003) { ; ASM: # TypeLeafKind: LF_FUNC_ID (0x1601) ; ASM: # ParentScope: 0x0 ; ASM: # FunctionType: void () (0x1001) ; ASM: # Name: foo ; ASM: # } -; ASM: .byte 0x0e, 0x00, 0x01, 0x16 -; ASM: .byte 0x00, 0x00, 0x00, 0x00 -; ASM: .byte 0x01, 0x10, 0x00, 0x00 -; ASM: .byte 0x66, 0x6f, 0x6f, 0x00 ; We should only the LF_FUNC_ID records that we needed to reference. ; OBJ: CodeViewTypes [ diff --git a/llvm/test/DebugInfo/COFF/lambda.ll b/llvm/test/DebugInfo/COFF/lambda.ll index 83e8e02e2e6..45a374bbb9a 100644 --- a/llvm/test/DebugInfo/COFF/lambda.ll +++ b/llvm/test/DebugInfo/COFF/lambda.ll @@ -1,4 +1,5 @@ ; RUN: llc < %s -filetype=obj | llvm-readobj - --codeview | FileCheck %s +; RUN: llc < %s | llvm-mc -filetype=obj --triple=i686-windows | llvm-readobj - --codeview | FileCheck %s ; ; Verify lambda routines are emitted properly in CodeView. ; diff --git a/llvm/test/DebugInfo/COFF/long-type-name.ll b/llvm/test/DebugInfo/COFF/long-type-name.ll index 93ac80ae711..1488e0891fc 100644 --- a/llvm/test/DebugInfo/COFF/long-type-name.ll +++ b/llvm/test/DebugInfo/COFF/long-type-name.ll @@ -1,4 +1,5 @@ ; RUN: llc %s -o - -filetype=obj | llvm-readobj --codeview | FileCheck %s +; RUN: llc %s -o - | llvm-mc -filetype=obj --triple=x86_64-windows | llvm-readobj --codeview | FileCheck %s ; CHECK: Struct (0x1000) { ; CHECK: TypeLeafKind: LF_STRUCTURE (0x1505) diff --git a/llvm/test/DebugInfo/COFF/nested-types.ll b/llvm/test/DebugInfo/COFF/nested-types.ll index 9579dafee2c..c68e4314925 100644 --- a/llvm/test/DebugInfo/COFF/nested-types.ll +++ b/llvm/test/DebugInfo/COFF/nested-types.ll @@ -1,4 +1,5 @@ ; RUN: llc < %s -filetype=obj | llvm-readobj - --codeview | FileCheck %s +; RUN: llc < %s | llvm-mc -filetype=obj --triple=x86_64-windows | llvm-readobj - --codeview | FileCheck %s ; C++ source to regenerate: ; struct HasNested { diff --git a/llvm/test/DebugInfo/COFF/retained-types.ll b/llvm/test/DebugInfo/COFF/retained-types.ll index 9e26b82cfe1..8d4253b827a 100644 --- a/llvm/test/DebugInfo/COFF/retained-types.ll +++ b/llvm/test/DebugInfo/COFF/retained-types.ll @@ -1,4 +1,5 @@ ; RUN: llc < %s -filetype=obj | llvm-readobj - --codeview | FileCheck %s +; RUN: llc < %s | llvm-mc -filetype=obj --triple=x86_64-windows | llvm-readobj - --codeview | FileCheck %s ; This test checks that types which are used in expressions, but for which ; there are no variables, known as retained types, get emitted. diff --git a/llvm/test/DebugInfo/COFF/scopes.ll b/llvm/test/DebugInfo/COFF/scopes.ll index a644ea9c5b3..23509b4c5b6 100644 --- a/llvm/test/DebugInfo/COFF/scopes.ll +++ b/llvm/test/DebugInfo/COFF/scopes.ll @@ -1,4 +1,5 @@ ; RUN: llc < %s -filetype=obj | llvm-readobj - --codeview | FileCheck %s +; RUN: llc < %s | llvm-mc -filetype=obj --triple=x86_64-windows | llvm-readobj - --codeview | FileCheck %s ; Check that we keep namespace scopes around the same way MSVC does. ; We do function scopes slightly differently, but everything should be alright. diff --git a/llvm/test/DebugInfo/COFF/static-methods.ll b/llvm/test/DebugInfo/COFF/static-methods.ll index eb192567629..1e51f80c5dd 100644 --- a/llvm/test/DebugInfo/COFF/static-methods.ll +++ b/llvm/test/DebugInfo/COFF/static-methods.ll @@ -1,4 +1,5 @@ ; RUN: llc < %s -filetype=obj | llvm-readobj - --codeview | FileCheck %s +; RUN: llc < %s | llvm-mc -filetype=obj --triple=i686-windows | llvm-readobj - --codeview | FileCheck %s ; Check for the appropriate MethodKind below. diff --git a/llvm/test/DebugInfo/COFF/type-quals.ll b/llvm/test/DebugInfo/COFF/type-quals.ll index 605dc187adc..fbe7f6c5b70 100644 --- a/llvm/test/DebugInfo/COFF/type-quals.ll +++ b/llvm/test/DebugInfo/COFF/type-quals.ll @@ -1,4 +1,5 @@ ; RUN: llc < %s -filetype=obj | llvm-readobj - --codeview | FileCheck %s +; RUN: llc < %s | llvm-mc -filetype=obj --triple=x86_64-windows | llvm-readobj - --codeview | FileCheck %s ; C++ source to regenerate: ; $ cat m.cpp diff --git a/llvm/test/DebugInfo/COFF/types-array-advanced.ll b/llvm/test/DebugInfo/COFF/types-array-advanced.ll index ea10142bd6e..3aa0686e203 100644 --- a/llvm/test/DebugInfo/COFF/types-array-advanced.ll +++ b/llvm/test/DebugInfo/COFF/types-array-advanced.ll @@ -1,4 +1,5 @@ ; RUN: llc < %s -filetype=obj | llvm-readobj - --codeview | FileCheck %s +; RUN: llc < %s | llvm-mc -filetype=obj --triple=i686-windows | llvm-readobj - --codeview | FileCheck %s ; C++ source to regenerate: ; $ cat t.cpp diff --git a/llvm/test/DebugInfo/COFF/types-array-unsized.ll b/llvm/test/DebugInfo/COFF/types-array-unsized.ll index c9e800c356d..abfcbbfebd3 100644 --- a/llvm/test/DebugInfo/COFF/types-array-unsized.ll +++ b/llvm/test/DebugInfo/COFF/types-array-unsized.ll @@ -1,4 +1,5 @@ ; RUN: llc -filetype=obj < %s | llvm-readobj --codeview | FileCheck %s +; RUN: llc < %s | llvm-mc -filetype=obj --triple=x86_64-windows | llvm-readobj --codeview | FileCheck %s ; We should emit two array types: one used to describe the static data member, ; and the other used by the S_GDATA32 for the definition. diff --git a/llvm/test/DebugInfo/COFF/types-array.ll b/llvm/test/DebugInfo/COFF/types-array.ll index 852d39546d8..7473c83f1a2 100644 --- a/llvm/test/DebugInfo/COFF/types-array.ll +++ b/llvm/test/DebugInfo/COFF/types-array.ll @@ -1,4 +1,5 @@ ; RUN: llc < %s -filetype=obj | llvm-readobj - --codeview | FileCheck %s +; RUN: llc < %s | llvm-mc -filetype=obj --triple=i686-windows | llvm-readobj - --codeview | FileCheck %s ; C++ source to regenerate: ; $ cat t.cpp diff --git a/llvm/test/DebugInfo/COFF/types-basic.ll b/llvm/test/DebugInfo/COFF/types-basic.ll index 773b2a1cc1e..343615a2e65 100644 --- a/llvm/test/DebugInfo/COFF/types-basic.ll +++ b/llvm/test/DebugInfo/COFF/types-basic.ll @@ -1,4 +1,6 @@ ; RUN: llc < %s -filetype=obj | llvm-readobj - --codeview | FileCheck %s +; RUN: llc < %s | llvm-mc -filetype=obj --triple=x86_64-windows | llvm-readobj - --codeview | FileCheck %s +; RUN: llc < %s | FileCheck %s --check-prefix=ASM ; C++ source to regenerate: ; $ cat t.cpp @@ -345,6 +347,373 @@ ; CHECK: ] ; CHECK: ] + + +; ASM: .section .debug$T,"dr" +; ASM: .p2align 2 +; ASM: .long 4 # Debug section magic +; ASM: .short 18 +; ASM: .short 4609 +; ASM: .long 3 +; ASM: .long 64 +; ASM: .long 65 +; ASM: .long 19 +; ASM: # ArgList (0x1000) { +; ASM: # TypeLeafKind: LF_ARGLIST (0x1201) +; ASM: # NumArgs: 3 +; ASM: # Arguments [ +; ASM: # ArgType: float (0x40) +; ASM: # ArgType: double (0x41) +; ASM: # ArgType: __int64 (0x13) +; ASM: # ] +; ASM: # } +; ASM: .short 14 +; ASM: .short 4104 +; ASM: .long 3 +; ASM: .byte 0 +; ASM: .byte 0 +; ASM: .short 3 +; ASM: .long 4096 +; ASM: # Procedure (0x1001) { +; ASM: # TypeLeafKind: LF_PROCEDURE (0x1008) +; ASM: # ReturnType: void (0x3) +; ASM: # CallingConvention: NearC (0x0) +; ASM: # FunctionOptions [ (0x0) +; ASM: # ] +; ASM: # NumParameters: 3 +; ASM: # ArgListType: (float, double, __int64) (0x1000) +; ASM: # } +; ASM: .short 14 +; ASM: .short 5633 +; ASM: .long 0 +; ASM: .long 4097 +; ASM: .asciz "f" +; ASM: .byte 242 +; ASM: .byte 241 +; ASM: # FuncId (0x1002) { +; ASM: # TypeLeafKind: LF_FUNC_ID (0x1601) +; ASM: # ParentScope: 0x0 +; ASM: # FunctionType: void (float, double, __int64) (0x1001) +; ASM: # Name: f +; ASM: # } +; ASM: .short 10 +; ASM: .short 4097 +; ASM: .long 116 +; ASM: .short 1 +; ASM: .byte 242 +; ASM: .byte 241 +; ASM: # Modifier (0x1003) { +; ASM: # TypeLeafKind: LF_MODIFIER (0x1001) +; ASM: # ModifiedType: int (0x74) +; ASM: # Modifiers [ (0x1) +; ASM: # Const (0x1) +; ASM: # ] +; ASM: # } +; ASM: .short 10 +; ASM: .short 4098 +; ASM: .long 4099 +; ASM: .long 65548 +; ASM: # Pointer (0x1004) { +; ASM: # TypeLeafKind: LF_POINTER (0x1002) +; ASM: # PointeeType: const int (0x1003) +; ASM: # PtrType: Near64 (0xC) +; ASM: # PtrMode: Pointer (0x0) +; ASM: # IsFlat: 0 +; ASM: # IsConst: 0 +; ASM: # IsVolatile: 0 +; ASM: # IsUnaligned: 0 +; ASM: # IsRestrict: 0 +; ASM: # IsThisPtr&: 0 +; ASM: # IsThisPtr&&: 0 +; ASM: # SizeOf: 8 +; ASM: # } +; ASM: .short 22 +; ASM: .short 5381 +; ASM: .short 0 +; ASM: .short 128 +; ASM: .long 0 +; ASM: .long 0 +; ASM: .long 0 +; ASM: .short 0 +; ASM: .asciz "A" +; ASM: # Struct (0x1005) { +; ASM: # TypeLeafKind: LF_STRUCTURE (0x1505) +; ASM: # MemberCount: 0 +; ASM: # Properties [ (0x80) +; ASM: # ForwardReference (0x80) +; ASM: # ] +; ASM: # FieldList: 0x0 +; ASM: # DerivedFrom: 0x0 +; ASM: # VShape: 0x0 +; ASM: # SizeOf: 0 +; ASM: # Name: A +; ASM: # } +; ASM: .short 18 +; ASM: .short 4098 +; ASM: .long 116 +; ASM: .long 32844 +; ASM: .long 4101 +; ASM: .short 4 +; ASM: .byte 242 +; ASM: .byte 241 +; ASM: # Pointer (0x1006) { +; ASM: # TypeLeafKind: LF_POINTER (0x1002) +; ASM: # PointeeType: int (0x74) +; ASM: # PtrType: Near64 (0xC) +; ASM: # PtrMode: PointerToDataMember (0x2) +; ASM: # IsFlat: 0 +; ASM: # IsConst: 0 +; ASM: # IsVolatile: 0 +; ASM: # IsUnaligned: 0 +; ASM: # IsRestrict: 0 +; ASM: # IsThisPtr&: 0 +; ASM: # IsThisPtr&&: 0 +; ASM: # SizeOf: 4 +; ASM: # ClassType: A (0x1005) +; ASM: # Representation: GeneralData (0x4) +; ASM: # } +; ASM: .short 10 +; ASM: .short 4098 +; ASM: .long 4101 +; ASM: .long 66572 +; ASM: # Pointer (0x1007) { +; ASM: # TypeLeafKind: LF_POINTER (0x1002) +; ASM: # PointeeType: A (0x1005) +; ASM: # PtrType: Near64 (0xC) +; ASM: # PtrMode: Pointer (0x0) +; ASM: # IsFlat: 0 +; ASM: # IsConst: 1 +; ASM: # IsVolatile: 0 +; ASM: # IsUnaligned: 0 +; ASM: # IsRestrict: 0 +; ASM: # IsThisPtr&: 0 +; ASM: # IsThisPtr&&: 0 +; ASM: # SizeOf: 8 +; ASM: # } +; ASM: .short 6 +; ASM: .short 4609 +; ASM: .long 0 +; ASM: # ArgList (0x1008) { +; ASM: # TypeLeafKind: LF_ARGLIST (0x1201) +; ASM: # NumArgs: 0 +; ASM: # Arguments [ +; ASM: # ] +; ASM: # } +; ASM: .short 26 +; ASM: .short 4105 +; ASM: .long 3 +; ASM: .long 4101 +; ASM: .long 4103 +; ASM: .byte 0 +; ASM: .byte 0 +; ASM: .short 0 +; ASM: .long 4104 +; ASM: .long 0 +; ASM: # MemberFunction (0x1009) { +; ASM: # TypeLeafKind: LF_MFUNCTION (0x1009) +; ASM: # ReturnType: void (0x3) +; ASM: # ClassType: A (0x1005) +; ASM: # ThisType: A* const (0x1007) +; ASM: # CallingConvention: NearC (0x0) +; ASM: # FunctionOptions [ (0x0) +; ASM: # ] +; ASM: # NumParameters: 0 +; ASM: # ArgListType: () (0x1008) +; ASM: # ThisAdjustment: 0 +; ASM: # } +; ASM: .short 30 +; ASM: .short 4611 +; ASM: .byte 0x0d, 0x15, 0x03, 0x00 +; ASM: .byte 0x74, 0x00, 0x00, 0x00 +; ASM: .byte 0x00, 0x00, 0x61, 0x00 +; ASM: .byte 0x11, 0x15, 0x03, 0x00 +; ASM: .byte 0x09, 0x10, 0x00, 0x00 +; ASM: .byte 0x41, 0x3a, 0x3a, 0x66 +; ASM: .byte 0x00, 0xf3, 0xf2, 0xf1 +; ASM: # FieldList (0x100A) { +; ASM: # TypeLeafKind: LF_FIELDLIST (0x1203) +; ASM: # DataMember { +; ASM: # TypeLeafKind: LF_MEMBER (0x150D) +; ASM: # AccessSpecifier: Public (0x3) +; ASM: # Type: int (0x74) +; ASM: # FieldOffset: 0x0 +; ASM: # Name: a +; ASM: # } +; ASM: # OneMethod { +; ASM: # TypeLeafKind: LF_ONEMETHOD (0x1511) +; ASM: # AccessSpecifier: Public (0x3) +; ASM: # Type: void A::() (0x1009) +; ASM: # Name: A::f +; ASM: # } +; ASM: # } +; ASM: .short 22 +; ASM: .short 5381 +; ASM: .short 2 +; ASM: .short 0 +; ASM: .long 4106 +; ASM: .long 0 +; ASM: .long 0 +; ASM: .short 4 +; ASM: .asciz "A" +; ASM: # Struct (0x100B) { +; ASM: # TypeLeafKind: LF_STRUCTURE (0x1505) +; ASM: # MemberCount: 2 +; ASM: # Properties [ (0x0) +; ASM: # ] +; ASM: # FieldList: <field list> (0x100A) +; ASM: # DerivedFrom: 0x0 +; ASM: # VShape: 0x0 +; ASM: # SizeOf: 4 +; ASM: # Name: A +; ASM: # } +; ASM: .short 30 +; ASM: .short 5637 +; ASM: .long 0 +; ASM: .asciz "D:\\src\\llvm\\build\\t.cpp" +; ASM: # StringId (0x100C) { +; ASM: # TypeLeafKind: LF_STRING_ID (0x1605) +; ASM: # Id: 0x0 +; ASM: # StringData: D:\src\llvm\build\t.cpp +; ASM: # } +; ASM: .short 14 +; ASM: .short 5638 +; ASM: .long 4107 +; ASM: .long 4108 +; ASM: .long 1 +; ASM: # UdtSourceLine (0x100D) { +; ASM: # TypeLeafKind: LF_UDT_SRC_LINE (0x1606) +; ASM: # UDT: A (0x100B) +; ASM: # SourceFile: D:\src\llvm\build\t.cpp (0x100C) +; ASM: # LineNumber: 1 +; ASM: # } +; ASM: .short 18 +; ASM: .short 4098 +; ASM: .long 4105 +; ASM: .long 65644 +; ASM: .long 4101 +; ASM: .short 8 +; ASM: .byte 242 +; ASM: .byte 241 +; ASM: # Pointer (0x100E) { +; ASM: # TypeLeafKind: LF_POINTER (0x1002) +; ASM: # PointeeType: void A::() (0x1009) +; ASM: # PtrType: Near64 (0xC) +; ASM: # PtrMode: PointerToMemberFunction (0x3) +; ASM: # IsFlat: 0 +; ASM: # IsConst: 0 +; ASM: # IsVolatile: 0 +; ASM: # IsUnaligned: 0 +; ASM: # IsRestrict: 0 +; ASM: # IsThisPtr&: 0 +; ASM: # IsThisPtr&&: 0 +; ASM: # SizeOf: 8 +; ASM: # ClassType: A (0x1005) +; ASM: # Representation: GeneralFunction (0x8) +; ASM: # } +; ASM: .short 10 +; ASM: .short 4097 +; ASM: .long 3 +; ASM: .short 1 +; ASM: .byte 242 +; ASM: .byte 241 +; ASM: # Modifier (0x100F) { +; ASM: # TypeLeafKind: LF_MODIFIER (0x1001) +; ASM: # ModifiedType: void (0x3) +; ASM: # Modifiers [ (0x1) +; ASM: # Const (0x1) +; ASM: # ] +; ASM: # } +; ASM: .short 10 +; ASM: .short 4098 +; ASM: .long 4111 +; ASM: .long 65548 +; ASM: # Pointer (0x1010) { +; ASM: # TypeLeafKind: LF_POINTER (0x1002) +; ASM: # PointeeType: const void (0x100F) +; ASM: # PtrType: Near64 (0xC) +; ASM: # PtrMode: Pointer (0x0) +; ASM: # IsFlat: 0 +; ASM: # IsConst: 0 +; ASM: # IsVolatile: 0 +; ASM: # IsUnaligned: 0 +; ASM: # IsRestrict: 0 +; ASM: # IsThisPtr&: 0 +; ASM: # IsThisPtr&&: 0 +; ASM: # SizeOf: 8 +; ASM: # } +; ASM: .short 14 +; ASM: .short 4104 +; ASM: .long 3 +; ASM: .byte 0 +; ASM: .byte 0 +; ASM: .short 0 +; ASM: .long 4104 +; ASM: # Procedure (0x1011) { +; ASM: # TypeLeafKind: LF_PROCEDURE (0x1008) +; ASM: # ReturnType: void (0x3) +; ASM: # CallingConvention: NearC (0x0) +; ASM: # FunctionOptions [ (0x0) +; ASM: # ] +; ASM: # NumParameters: 0 +; ASM: # ArgListType: () (0x1008) +; ASM: # } +; ASM: .short 22 +; ASM: .short 5633 +; ASM: .long 0 +; ASM: .long 4113 +; ASM: .asciz "CharTypes" +; ASM: .byte 242 +; ASM: .byte 241 +; ASM: # FuncId (0x1012) { +; ASM: # TypeLeafKind: LF_FUNC_ID (0x1601) +; ASM: # ParentScope: 0x0 +; ASM: # FunctionType: void () (0x1011) +; ASM: # Name: CharTypes +; ASM: # } +; ASM: .short 26 +; ASM: .short 5637 +; ASM: .long 0 +; ASM: .asciz "D:\\src\\llvm\\build" +; ASM: .byte 242 +; ASM: .byte 241 +; ASM: # StringId (0x1013) { +; ASM: # TypeLeafKind: LF_STRING_ID (0x1605) +; ASM: # Id: 0x0 +; ASM: # StringData: D:\src\llvm\build +; ASM: # } +; ASM: .short 14 +; ASM: .short 5637 +; ASM: .long 0 +; ASM: .asciz "t.cpp" +; ASM: .byte 242 +; ASM: .byte 241 +; ASM: # StringId (0x1014) { +; ASM: # TypeLeafKind: LF_STRING_ID (0x1605) +; ASM: # Id: 0x0 +; ASM: # StringData: t.cpp +; ASM: # } +; ASM: .short 26 +; ASM: .short 5635 +; ASM: .short 5 +; ASM: .long 4115 +; ASM: .long 0 +; ASM: .long 4116 +; ASM: .long 0 +; ASM: .long 0 +; ASM: .byte 242 +; ASM: .byte 241 +; ASM: # BuildInfo (0x1015) { +; ASM: # TypeLeafKind: LF_BUILDINFO (0x1603) +; ASM: # NumArgs: 5 +; ASM: # Arguments [ +; ASM: # ArgType: D:\src\llvm\build (0x1013) +; ASM: # ArgType: 0x0 +; ASM: # ArgType: t.cpp (0x1014) +; ASM: # ArgType: 0x0 +; ASM: # ArgType: 0x0 +; ASM: # ] +; ASM: # } + ; ModuleID = 't.cpp' source_filename = "t.cpp" target datalayout = "e-m:w-i64:64-f80:128-n8:16:32:64-S128" diff --git a/llvm/test/DebugInfo/COFF/types-calling-conv.ll b/llvm/test/DebugInfo/COFF/types-calling-conv.ll index f0a4fe1ea8b..0adac0095bb 100644 --- a/llvm/test/DebugInfo/COFF/types-calling-conv.ll +++ b/llvm/test/DebugInfo/COFF/types-calling-conv.ll @@ -1,4 +1,5 @@ ; RUN: llc < %s -filetype=obj -o - | llvm-readobj - --codeview | FileCheck %s +; RUN: llc < %s -o - | llvm-mc -filetype=obj --triple=i386-windows | llvm-readobj - --codeview | FileCheck %s ; C++ source to regenerate: ; $ cat t.cpp diff --git a/llvm/test/DebugInfo/COFF/types-cvarargs.ll b/llvm/test/DebugInfo/COFF/types-cvarargs.ll index 88b59e4fe00..80b1252e81d 100644 --- a/llvm/test/DebugInfo/COFF/types-cvarargs.ll +++ b/llvm/test/DebugInfo/COFF/types-cvarargs.ll @@ -1,4 +1,5 @@ ; RUN: llc < %s -filetype=obj | llvm-readobj - --codeview | FileCheck %s +; RUN: llc < %s | llvm-mc -filetype=obj --triple=x86_64-windows | llvm-readobj - --codeview | FileCheck %s ; C++ source to regenerate: ; $ cat t.cpp diff --git a/llvm/test/DebugInfo/COFF/types-data-members.ll b/llvm/test/DebugInfo/COFF/types-data-members.ll index d8cff6b7a08..842df34c5e8 100644 --- a/llvm/test/DebugInfo/COFF/types-data-members.ll +++ b/llvm/test/DebugInfo/COFF/types-data-members.ll @@ -1,4 +1,5 @@ ; RUN: llc < %s -filetype=obj | llvm-readobj - --codeview | FileCheck %s +; RUN: llc < %s | llvm-mc -filetype=obj --triple=x86_64-windows | llvm-readobj - --codeview | FileCheck %s ; C++ source to regenerate: ; $ cat t.cpp diff --git a/llvm/test/DebugInfo/COFF/types-empty-member-fn.ll b/llvm/test/DebugInfo/COFF/types-empty-member-fn.ll index 003b9c89b13..4cbe0a1fd2c 100644 --- a/llvm/test/DebugInfo/COFF/types-empty-member-fn.ll +++ b/llvm/test/DebugInfo/COFF/types-empty-member-fn.ll @@ -1,4 +1,5 @@ ; RUN: llc < %s -filetype=obj | llvm-readobj - --codeview | FileCheck %s +; RUN: llc < %s | llvm-mc -filetype=obj --triple=x86_64-windows | llvm-readobj - --codeview | FileCheck %s ; ModuleID = 'foo.3a1fbbbh-cgu.0' source_filename = "foo.3a1fbbbh-cgu.0" diff --git a/llvm/test/DebugInfo/COFF/types-method-ref-qualifiers.ll b/llvm/test/DebugInfo/COFF/types-method-ref-qualifiers.ll index cf4781798f0..64033f595ee 100644 --- a/llvm/test/DebugInfo/COFF/types-method-ref-qualifiers.ll +++ b/llvm/test/DebugInfo/COFF/types-method-ref-qualifiers.ll @@ -1,4 +1,5 @@ ; RUN: llc < %s -filetype=obj | llvm-readobj - --codeview | FileCheck %s +; RUN: llc < %s | llvm-mc -filetype=obj --triple=x86_64-windows | llvm-readobj - --codeview | FileCheck %s ; C++ source to regenerate: ; struct A { diff --git a/llvm/test/DebugInfo/COFF/types-nested-class.ll b/llvm/test/DebugInfo/COFF/types-nested-class.ll index 0893db7240a..4110329a005 100644 --- a/llvm/test/DebugInfo/COFF/types-nested-class.ll +++ b/llvm/test/DebugInfo/COFF/types-nested-class.ll @@ -1,4 +1,5 @@ ; RUN: llc < %s -filetype=obj | llvm-readobj - --codeview | FileCheck %s +; RUN: llc < %s | llvm-mc -filetype=obj --triple=x86_64-windows | llvm-readobj - --codeview | FileCheck %s ; C++ source to regenerate: ; $ cat hello.cpp diff --git a/llvm/test/DebugInfo/COFF/types-non-virtual-methods.ll b/llvm/test/DebugInfo/COFF/types-non-virtual-methods.ll index dfe1589ab3f..bc789d5e70c 100644 --- a/llvm/test/DebugInfo/COFF/types-non-virtual-methods.ll +++ b/llvm/test/DebugInfo/COFF/types-non-virtual-methods.ll @@ -1,4 +1,5 @@ ; RUN: llc < %s -filetype=obj | llvm-readobj - --codeview | FileCheck %s +; RUN: llc < %s | llvm-mc -filetype=obj --triple=i686-windows | llvm-readobj - --codeview | FileCheck %s ; C++ source to regenerate: ; $ cat t.cpp diff --git a/llvm/test/DebugInfo/COFF/types-ptr-to-member.ll b/llvm/test/DebugInfo/COFF/types-ptr-to-member.ll index 33b536ae656..d565fee2114 100644 --- a/llvm/test/DebugInfo/COFF/types-ptr-to-member.ll +++ b/llvm/test/DebugInfo/COFF/types-ptr-to-member.ll @@ -1,4 +1,5 @@ ; RUN: llc < %s -filetype=obj | llvm-readobj - --codeview | FileCheck %s +; RUN: llc < %s | llvm-mc -filetype=obj --triple=x86_64-windows | llvm-readobj - --codeview | FileCheck %s ; C++ source to regenerate: ; $ cat t.cpp diff --git a/llvm/test/DebugInfo/COFF/types-recursive-struct.ll b/llvm/test/DebugInfo/COFF/types-recursive-struct.ll index 34ca2b11fa1..cdefec3d05f 100644 --- a/llvm/test/DebugInfo/COFF/types-recursive-struct.ll +++ b/llvm/test/DebugInfo/COFF/types-recursive-struct.ll @@ -1,4 +1,5 @@ ; RUN: llc < %s -filetype=obj | llvm-readobj - --codeview | FileCheck %s +; RUN: llc < %s | llvm-mc -filetype=obj --triple=x86_64-windows | llvm-readobj - --codeview | FileCheck %s ; This test ensures that circular type references through pointer types don't ; cause infinite recursion. It also tests that we always refer to the forward diff --git a/llvm/test/DebugInfo/COFF/unnamed.ll b/llvm/test/DebugInfo/COFF/unnamed.ll index c845785a27b..5c21d052ffe 100644 --- a/llvm/test/DebugInfo/COFF/unnamed.ll +++ b/llvm/test/DebugInfo/COFF/unnamed.ll @@ -1,4 +1,5 @@ ; RUN: llc < %s -filetype=obj | llvm-readobj - --codeview | FileCheck %s +; RUN: llc < %s | llvm-mc -filetype=obj --triple=x86_64-windows | llvm-readobj - --codeview | FileCheck %s ; ; Verify CodeView emission does not emit forward references for unnamed ; structs/unions. If a forward reference is emitted for an unnamed composite diff --git a/llvm/test/DebugInfo/COFF/vftables.ll b/llvm/test/DebugInfo/COFF/vftables.ll index 250ee28639a..4acacb343d0 100644 --- a/llvm/test/DebugInfo/COFF/vftables.ll +++ b/llvm/test/DebugInfo/COFF/vftables.ll @@ -1,4 +1,5 @@ ; RUN: llc < %s -filetype=obj | llvm-readobj - --codeview | FileCheck %s +; RUN: llc < %s | llvm-mc -filetype=obj --triple=x86_64-windows | llvm-readobj - --codeview | FileCheck %s ; C++ source to regenerate: ; struct A { diff --git a/llvm/test/DebugInfo/COFF/virtual-method-kinds.ll b/llvm/test/DebugInfo/COFF/virtual-method-kinds.ll index ea478d886a2..f7533267118 100644 --- a/llvm/test/DebugInfo/COFF/virtual-method-kinds.ll +++ b/llvm/test/DebugInfo/COFF/virtual-method-kinds.ll @@ -1,4 +1,5 @@ ; RUN: llc < %s -filetype=obj | llvm-readobj - --codeview | FileCheck %s +; RUN: llc < %s | llvm-mc -filetype=obj --triple=x86_64-windows | llvm-readobj - --codeview | FileCheck %s ; Check for the appropriate MethodKind below. diff --git a/llvm/test/DebugInfo/COFF/virtual-methods.ll b/llvm/test/DebugInfo/COFF/virtual-methods.ll index f2e68c579d4..f429f035ae4 100644 --- a/llvm/test/DebugInfo/COFF/virtual-methods.ll +++ b/llvm/test/DebugInfo/COFF/virtual-methods.ll @@ -1,4 +1,5 @@ ; RUN: llc < %s -filetype=obj | llvm-readobj - --codeview | FileCheck %s +; RUN: llc < %s | llvm-mc -filetype=obj --triple=x86_64-windows | llvm-readobj - --codeview | FileCheck %s ; C++ source used to generate IR: ; $ cat t.cpp diff --git a/llvm/test/DebugInfo/COFF/vtable-optzn-array.ll b/llvm/test/DebugInfo/COFF/vtable-optzn-array.ll index 2b5e25b2ca1..2c9d2b76341 100644 --- a/llvm/test/DebugInfo/COFF/vtable-optzn-array.ll +++ b/llvm/test/DebugInfo/COFF/vtable-optzn-array.ll @@ -1,4 +1,5 @@ ; RUN: llc < %s -filetype=obj -o - | llvm-readobj - --codeview | FileCheck %s +; RUN: llc < %s -o - | llvm-mc -filetype=obj --triple=x86_64-windows | llvm-readobj - --codeview | FileCheck %s ; We used to crash on this input because UnicodeString is a forward declaration ; with no size. Our array type logic wanted to assert the size of the elements |