47293
|
1 |
/*
|
|
2 |
* Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
|
|
3 |
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
|
4 |
*
|
|
5 |
* This code is free software; you can redistribute it and/or modify it
|
|
6 |
* under the terms of the GNU General Public License version 2 only, as
|
|
7 |
* published by the Free Software Foundation.
|
|
8 |
*
|
|
9 |
* This code is distributed in the hope that it will be useful, but WITHOUT
|
|
10 |
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
|
11 |
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
|
12 |
* version 2 for more details (a copy is included in the LICENSE file that
|
|
13 |
* accompanied this code).
|
|
14 |
*
|
|
15 |
* You should have received a copy of the GNU General Public License version
|
|
16 |
* 2 along with this work; if not, write to the Free Software Foundation,
|
|
17 |
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
|
18 |
*
|
|
19 |
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
|
20 |
* or visit www.oracle.com if you need additional information or have any
|
|
21 |
* questions.
|
|
22 |
*/
|
|
23 |
|
|
24 |
/**
|
|
25 |
* JDK-8147076: LinkerCallSite.ARGLIMIT is used incorrectly
|
|
26 |
*
|
|
27 |
* @test
|
|
28 |
* @run
|
|
29 |
*/
|
|
30 |
|
|
31 |
function nonvarargs(p1, p2, p3, p4, p5, p6, p7, p8, p9, p10,
|
|
32 |
p11, p12, p13, p14, p15, p16, p17, p18, p19, p20,
|
|
33 |
p21, p22, p23, p24, p25, p26, p27, p28, p29, p30,
|
|
34 |
p31, p32, p33, p34, p35, p36, p37, p38, p39, p40,
|
|
35 |
p41, p42, p43, p44, p45, p46, p47, p48, p49, p50,
|
|
36 |
p51, p52, p53, p54, p55, p56, p57, p58, p59, p60,
|
|
37 |
p61, p62, p63, p64, p65, p66, p67, p68, p69, p70,
|
|
38 |
p71, p72, p73, p74, p75, p76, p77, p78, p79, p80,
|
|
39 |
p81, p82, p83, p84, p85, p86, p87, p88, p89, p90,
|
|
40 |
p91, p92, p93, p94, p95, p96, p97, p98, p99, p100,
|
|
41 |
p101, p102, p103, p104, p105, p106, p107, p108, p109, p110,
|
|
42 |
p111, p112, p113, p114, p115, p116, p117, p118, p119, p120,
|
|
43 |
p121, p122, p123, p124, p125) {
|
|
44 |
//eval() is just to make sure this-object and callee are passed as parameters
|
|
45 |
eval();
|
|
46 |
print("non-vararg invocation if arguments <= 125");
|
|
47 |
}
|
|
48 |
|
|
49 |
nonvarargs(1.1,2.2,3.3,4.4,5.5,6.6,7.7,8.8,9.9,10.10,11.11,12.12,13.13,14.14,15.15,16.16,17.17,18.18,19.19,20.20,
|
|
50 |
21.21,22.22,23.23,24.24,25.25,26.26,27.27,28.28,29.29,30.30,31.31,32.32,33.33,34.34,35.35,36.36,37.37,38.38,39.39,40.40,
|
|
51 |
41.41,42.42,43.43,44.44,45.45,46.46,47.47,48.48,49.49,50.50,51.51,52.52,53.53,54.54,55.55,56.56,57.57,58.58,59.59,60.60,
|
|
52 |
61.61,62.62,63.63,64.64,65.65,66.66,67.67,68.68,69.69,70.70,71.71,72.72,73.73,74.74,75.75,76.76,77.77,78.78,79.79,80.80,
|
|
53 |
81.81,82.82,83.83,84.84,85.85,86.86,87.87,88.88,89.89,90.90,91.91,92.92,93.93,94.94,95.95,96.96,97.97,98.98,99.99,100.100,
|
|
54 |
101.101,102.102,103.103,104.104,105.105,106.106,107.107,108.108,109.109,110.110,111.111,112.112,113.113,114.114,115.115,
|
|
55 |
116.116,117.117,118.118,119.119,120.120,121.121,122.122,123.123,124.124,125.125);
|
|
56 |
|
|
57 |
|
|
58 |
|
|
59 |
function varargs(p1, p2, p3, p4, p5, p6, p7, p8, p9, p10,
|
|
60 |
p11, p12, p13, p14, p15, p16, p17, p18, p19, p20,
|
|
61 |
p21, p22, p23, p24, p25, p26, p27, p28, p29, p30,
|
|
62 |
p31, p32, p33, p34, p35, p36, p37, p38, p39, p40,
|
|
63 |
p41, p42, p43, p44, p45, p46, p47, p48, p49, p50,
|
|
64 |
p51, p52, p53, p54, p55, p56, p57, p58, p59, p60,
|
|
65 |
p61, p62, p63, p64, p65, p66, p67, p68, p69, p70,
|
|
66 |
p71, p72, p73, p74, p75, p76, p77, p78, p79, p80,
|
|
67 |
p81, p82, p83, p84, p85, p86, p87, p88, p89, p90,
|
|
68 |
p91, p92, p93, p94, p95, p96, p97, p98, p99, p100,
|
|
69 |
p101, p102, p103, p104, p105, p106, p107, p108, p109, p110,
|
|
70 |
p111, p112, p113, p114, p115, p116, p117, p118, p119, p120,
|
|
71 |
p121, p122, p123, p124, p125, p126) {
|
|
72 |
//eval() is just to make sure this-object and callee are passed as parameters
|
|
73 |
eval();
|
|
74 |
print("vararg invocation if arguments > 125");
|
|
75 |
}
|
|
76 |
|
|
77 |
varargs(1.1,2.2,3.3,4.4,5.5,6.6,7.7,8.8,9.9,10.10,11.11,12.12,13.13,14.14,15.15,16.16,17.17,18.18,19.19,20.20,
|
|
78 |
21.21,22.22,23.23,24.24,25.25,26.26,27.27,28.28,29.29,30.30,31.31,32.32,33.33,34.34,35.35,36.36,37.37,38.38,39.39,40.40,
|
|
79 |
41.41,42.42,43.43,44.44,45.45,46.46,47.47,48.48,49.49,50.50,51.51,52.52,53.53,54.54,55.55,56.56,57.57,58.58,59.59,60.60,
|
|
80 |
61.61,62.62,63.63,64.64,65.65,66.66,67.67,68.68,69.69,70.70,71.71,72.72,73.73,74.74,75.75,76.76,77.77,78.78,79.79,80.80,
|
|
81 |
81.81,82.82,83.83,84.84,85.85,86.86,87.87,88.88,89.89,90.90,91.91,92.92,93.93,94.94,95.95,96.96,97.97,98.98,99.99,100.100,
|
|
82 |
101.101,102.102,103.103,104.104,105.105,106.106,107.107,108.108,109.109,110.110,111.111,112.112,113.113,114.114,115.115,
|
|
83 |
116.116,117.117,118.118,119.119,120.120,121.121,122.122,123.123,124.124,125.125,126.126);
|
|
84 |
|