mirror of
https://github.com/RPCSX/llvm.git
synced 2025-01-23 12:45:47 +00:00
DebugInfo: Really support 2^16 arguments in a subprogram
As a follow-up to r235955, actually support up to 65535 arguments in a subprogram. r235955 missed assembly support, having only tested the new limit via C++ unit tests. Code patch by Amjad Aboud. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@238854 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
31ed6b767b
commit
16fb1632a1
@ -3730,7 +3730,7 @@ bool LLParser::ParseDILocalVariable(MDNode *&Result, bool IsDistinct) {
|
||||
OPTIONAL(file, MDField, ); \
|
||||
OPTIONAL(line, LineField, ); \
|
||||
OPTIONAL(type, MDField, ); \
|
||||
OPTIONAL(arg, MDUnsignedField, (0, UINT8_MAX)); \
|
||||
OPTIONAL(arg, MDUnsignedField, (0, UINT16_MAX)); \
|
||||
OPTIONAL(flags, DIFlagField, );
|
||||
PARSE_MD_FIELDS();
|
||||
#undef VISIT_MD_FIELDS
|
||||
|
10
test/Assembler/dilocalvariable-arg-large.ll
Normal file
10
test/Assembler/dilocalvariable-arg-large.ll
Normal file
@ -0,0 +1,10 @@
|
||||
; RUN: llvm-as < %s | llvm-dis | llvm-as | llvm-dis | FileCheck %s
|
||||
; RUN: verify-uselistorder %s
|
||||
|
||||
; CHECK: !named = !{!0, !1}
|
||||
!named = !{!0, !1}
|
||||
|
||||
!0 = distinct !DISubprogram()
|
||||
|
||||
; CHECK: !1 = !DILocalVariable(tag: DW_TAG_arg_variable, name: "foo", arg: 65535, scope: !0)
|
||||
!1 = !DILocalVariable(tag: DW_TAG_arg_variable, name: "foo", arg: 65535, scope: !0)
|
6
test/Assembler/invalid-dilocalvariable-arg-large.ll
Normal file
6
test/Assembler/invalid-dilocalvariable-arg-large.ll
Normal file
@ -0,0 +1,6 @@
|
||||
; RUN: not llvm-as < %s 2>&1 | FileCheck %s
|
||||
|
||||
!0 = !DILocalVariable(tag: DW_TAG_arg_variable, scope: !{}, arg: 65535)
|
||||
|
||||
; CHECK: <stdin>:[[@LINE+1]]:66: error: value for 'arg' too large, limit is 65535
|
||||
!1 = !DILocalVariable(tag: DW_TAG_arg_variable, scope: !{}, arg: 65536)
|
6
test/Assembler/invalid-dilocalvariable-arg-negative.ll
Normal file
6
test/Assembler/invalid-dilocalvariable-arg-negative.ll
Normal file
@ -0,0 +1,6 @@
|
||||
; RUN: not llvm-as < %s 2>&1 | FileCheck %s
|
||||
|
||||
!0 = !DILocalVariable(tag: DW_TAG_arg_variable, scope: !{}, arg: 0)
|
||||
|
||||
; CHECK: <stdin>:[[@LINE+1]]:66: error: expected unsigned integer
|
||||
!1 = !DILocalVariable(tag: DW_TAG_arg_variable, scope: !{}, arg: -1)
|
Loading…
x
Reference in New Issue
Block a user