llvm/test/Assembler/disubroutinetype.ll
Reid Kleckner 3d3aca2d97 [DebugInfo] Add calling convention support for DWARF and CodeView
Summary:
Now DISubroutineType has a 'cc' field which should be a DW_CC_ enum.  If
it is present and non-zero, the backend will emit it as a
DW_AT_calling_convention attribute. On the CodeView side, we translate
it to the appropriate enum for the LF_PROCEDURE record.

I added a new LLVM vendor specific enum to the list of DWARF calling
conventions. DWARF does not appear to attempt to standardize these, so I
assume it's OK to do this until we coordinate with GCC on how to emit
vectorcall convention functions.

Reviewers: dexonsmith, majnemer, aaboud, amccarth

Subscribers: mehdi_amini, llvm-commits

Differential Revision: http://reviews.llvm.org/D21114

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@272197 91177308-0d34-0410-b5e6-96231b3b80d8
2016-06-08 20:34:29 +00:00

33 lines
1.3 KiB
LLVM

; RUN: llvm-as < %s | llvm-dis | llvm-as | llvm-dis | FileCheck %s
; RUN: verify-uselistorder %s
; CHECK: !named = !{!0, !1, !2, !3, !4, !5, !6, !7, !8, !9, !10, !11, !12}
!named = !{!0, !1, !2, !3, !4, !5, !6, !7, !8, !9, !10, !11, !12}
!0 = !DIBasicType(name: "int", size: 32, align: 32, encoding: DW_ATE_signed)
!1 = !{null}
!2 = !{null, !0}
!3 = !{!0, !0, !0}
; CHECK: !4 = !DISubroutineType(types: !1)
; CHECK: !5 = !DISubroutineType(types: !2)
; CHECK: !6 = !DISubroutineType(types: !3)
; CHECK: !7 = !DISubroutineType(flags: DIFlagLValueReference, types: !3)
!4 = !DISubroutineType(types: !1)
!5 = !DISubroutineType(types: !2)
!6 = !DISubroutineType(types: !3)
!7 = !DISubroutineType(flags: DIFlagLValueReference, types: !3)
; CHECK: !8 = !DISubroutineType(types: null)
!8 = !DISubroutineType(types: null)
; CHECK: !9 = !DISubroutineType(cc: DW_CC_normal, types: null)
; CHECK: !10 = !DISubroutineType(cc: DW_CC_BORLAND_msfastcall, types: null)
; CHECK: !11 = !DISubroutineType(cc: DW_CC_BORLAND_stdcall, types: null)
; CHECK: !12 = !DISubroutineType(cc: DW_CC_LLVM_vectorcall, types: null)
!9 = !DISubroutineType(cc: DW_CC_normal, types: null)
!10 = !DISubroutineType(cc: DW_CC_BORLAND_msfastcall, types: null)
!11 = !DISubroutineType(cc: DW_CC_BORLAND_stdcall, types: null)
!12 = !DISubroutineType(cc: DW_CC_LLVM_vectorcall, types: null)