summaryrefslogtreecommitdiffstats
path: root/llvm/test
diff options
context:
space:
mode:
Diffstat (limited to 'llvm/test')
-rw-r--r--llvm/test/DebugInfo/COFF/anonymous-struct.ll1
-rw-r--r--llvm/test/DebugInfo/COFF/big-type.ll1
-rw-r--r--llvm/test/DebugInfo/COFF/class-options-common.ll1
-rw-r--r--llvm/test/DebugInfo/COFF/const-unnamed-member.ll1
-rw-r--r--llvm/test/DebugInfo/COFF/defer-complete-type.ll1
-rw-r--r--llvm/test/DebugInfo/COFF/enum-co.ll1
-rw-r--r--llvm/test/DebugInfo/COFF/enum.ll1
-rw-r--r--llvm/test/DebugInfo/COFF/function-options.ll1
-rw-r--r--llvm/test/DebugInfo/COFF/globals.ll1
-rw-r--r--llvm/test/DebugInfo/COFF/inheritance.ll1
-rw-r--r--llvm/test/DebugInfo/COFF/inlining-padding.ll1
-rw-r--r--llvm/test/DebugInfo/COFF/inlining-same-name.ll1
-rw-r--r--llvm/test/DebugInfo/COFF/inlining.ll14
-rw-r--r--llvm/test/DebugInfo/COFF/lambda.ll1
-rw-r--r--llvm/test/DebugInfo/COFF/long-type-name.ll1
-rw-r--r--llvm/test/DebugInfo/COFF/nested-types.ll1
-rw-r--r--llvm/test/DebugInfo/COFF/retained-types.ll1
-rw-r--r--llvm/test/DebugInfo/COFF/scopes.ll1
-rw-r--r--llvm/test/DebugInfo/COFF/static-methods.ll1
-rw-r--r--llvm/test/DebugInfo/COFF/type-quals.ll1
-rw-r--r--llvm/test/DebugInfo/COFF/types-array-advanced.ll1
-rw-r--r--llvm/test/DebugInfo/COFF/types-array-unsized.ll1
-rw-r--r--llvm/test/DebugInfo/COFF/types-array.ll1
-rw-r--r--llvm/test/DebugInfo/COFF/types-basic.ll369
-rw-r--r--llvm/test/DebugInfo/COFF/types-calling-conv.ll1
-rw-r--r--llvm/test/DebugInfo/COFF/types-cvarargs.ll1
-rw-r--r--llvm/test/DebugInfo/COFF/types-data-members.ll1
-rw-r--r--llvm/test/DebugInfo/COFF/types-empty-member-fn.ll1
-rw-r--r--llvm/test/DebugInfo/COFF/types-method-ref-qualifiers.ll1
-rw-r--r--llvm/test/DebugInfo/COFF/types-nested-class.ll1
-rw-r--r--llvm/test/DebugInfo/COFF/types-non-virtual-methods.ll1
-rw-r--r--llvm/test/DebugInfo/COFF/types-ptr-to-member.ll1
-rw-r--r--llvm/test/DebugInfo/COFF/types-recursive-struct.ll1
-rw-r--r--llvm/test/DebugInfo/COFF/unnamed.ll1
-rw-r--r--llvm/test/DebugInfo/COFF/vftables.ll1
-rw-r--r--llvm/test/DebugInfo/COFF/virtual-method-kinds.ll1
-rw-r--r--llvm/test/DebugInfo/COFF/virtual-methods.ll1
-rw-r--r--llvm/test/DebugInfo/COFF/vtable-optzn-array.ll1
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
OpenPOWER on IntegriCloud