diff options
author | Duncan P. N. Exon Smith <dexonsmith@apple.com> | 2015-06-02 17:17:44 +0000 |
---|---|---|
committer | Duncan P. N. Exon Smith <dexonsmith@apple.com> | 2015-06-02 17:17:44 +0000 |
commit | 694886989cf28f59e3bb97b20d98bd79a363729b (patch) | |
tree | 25d1fde2cd44e57dc3582a04eca9e6671b85d4bc /llvm/test | |
parent | 9ce58b1cfbb125c77dc7a89e43b767727c7bb4db (diff) | |
download | bcm5719-llvm-694886989cf28f59e3bb97b20d98bd79a363729b.tar.gz bcm5719-llvm-694886989cf28f59e3bb97b20d98bd79a363729b.zip |
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.
llvm-svn: 238854
Diffstat (limited to 'llvm/test')
-rw-r--r-- | llvm/test/Assembler/dilocalvariable-arg-large.ll | 10 | ||||
-rw-r--r-- | llvm/test/Assembler/invalid-dilocalvariable-arg-large.ll | 6 | ||||
-rw-r--r-- | llvm/test/Assembler/invalid-dilocalvariable-arg-negative.ll | 6 |
3 files changed, 22 insertions, 0 deletions
diff --git a/llvm/test/Assembler/dilocalvariable-arg-large.ll b/llvm/test/Assembler/dilocalvariable-arg-large.ll new file mode 100644 index 00000000000..7788186a54a --- /dev/null +++ b/llvm/test/Assembler/dilocalvariable-arg-large.ll @@ -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) diff --git a/llvm/test/Assembler/invalid-dilocalvariable-arg-large.ll b/llvm/test/Assembler/invalid-dilocalvariable-arg-large.ll new file mode 100644 index 00000000000..d62da601e13 --- /dev/null +++ b/llvm/test/Assembler/invalid-dilocalvariable-arg-large.ll @@ -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) diff --git a/llvm/test/Assembler/invalid-dilocalvariable-arg-negative.ll b/llvm/test/Assembler/invalid-dilocalvariable-arg-negative.ll new file mode 100644 index 00000000000..08e370a3666 --- /dev/null +++ b/llvm/test/Assembler/invalid-dilocalvariable-arg-negative.ll @@ -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) |