Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit7b3259b

Browse files
committed
Test ECPG decadd(), decdiv(), decmul(), and decsub() for risnull() input.
Since commit757fb0e, theseInformix-compat functions return 0 without changing the outputparameter. Initialize the output parameter before the test call, makingthat obvious. Before this, the expected test output has been dependingon freed stack memory. "gcc -ftrivial-auto-var-init=pattern" revealedthat. Back-patch to v13 (all supported versions).Discussion:https://postgr.es/m/20250106192748.cf.nmisch@google.com
1 parent4106942 commit7b3259b

File tree

3 files changed

+136
-116
lines changed

3 files changed

+136
-116
lines changed

‎src/interfaces/ecpg/test/compat_informix/dec_test.pgc

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -142,6 +142,16 @@ main(void)
142142
c = deccmp(decarr[i], decarr[j]);
143143
printf("dec[c,%d,%d]: %d\n", i, j, c);
144144

145+
/*
146+
* decarr[count-1] is risnull(), which makes these functions
147+
* return 0 without changing the output parameter. Make that
148+
* clear by initializing each output parameter.
149+
*/
150+
deccvint(7654321, &a);
151+
deccvint(7654321, &s);
152+
deccvint(7654321, &m);
153+
deccvint(7654321, &d);
154+
145155
r = decadd(decarr[i], decarr[j], &a);
146156
if (r)
147157
{

‎src/interfaces/ecpg/test/expected/compat_informix-dec_test.c

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -195,6 +195,16 @@ main(void)
195195
c=deccmp(decarr[i],decarr[j]);
196196
printf("dec[c,%d,%d]: %d\n",i,j,c);
197197

198+
/*
199+
* decarr[count-1] is risnull(), which makes these functions
200+
* return 0 without changing the output parameter. Make that
201+
* clear by initializing each output parameter.
202+
*/
203+
deccvint(7654321,&a);
204+
deccvint(7654321,&s);
205+
deccvint(7654321,&m);
206+
deccvint(7654321,&d);
207+
198208
r=decadd(decarr[i],decarr[j],&a);
199209
if (r)
200210
{

‎src/interfaces/ecpg/test/expected/compat_informix-dec_test.stdout

Lines changed: 116 additions & 116 deletions
Original file line numberDiff line numberDiff line change
@@ -222,10 +222,10 @@ dec[s,0,13]:
222222
dec[m,0,13]: *
223223
dec[d,0,13]:
224224
dec[c,0,14]: 2147483647
225-
dec[a,0,14]:
226-
dec[s,0,14]:
227-
dec[m,0,14]:*
228-
dec[d,0,14]:
225+
dec[a,0,14]:7654321.0
226+
dec[s,0,14]:7654321.0
227+
dec[m,0,14]:7654321.0
228+
dec[d,0,14]:7654321.0
229229
dec[c,1,0]: -1
230230
(errno == PGTYPES_NUM_OVERFLOW) - r: -1200
231231
dec[s,1,0]:
@@ -297,10 +297,10 @@ dec[s,1,13]: -1234567890123456789012345680.91
297297
dec[m,1,13]: -2469135780246913578024691357.82
298298
dec[d,1,13]: -0.0000000000000000000000000016200000145800001
299299
dec[c,1,14]: 2147483647
300-
dec[a,1,14]:1234567890123456789012345676.91
301-
dec[s,1,14]:-1234567890123456789012345680.91
302-
dec[m,1,14]:-2469135780246913578024691357.82
303-
dec[d,1,14]:-0.0000000000000000000000000016200000145800001
300+
dec[a,1,14]:7654321.0
301+
dec[s,1,14]:7654321.0
302+
dec[m,1,14]:7654321.0
303+
dec[d,1,14]:7654321.0
304304
dec[c,2,0]: -1
305305
(errno == PGTYPES_NUM_OVERFLOW) - r: -1200
306306
dec[s,2,0]:
@@ -372,10 +372,10 @@ dec[s,2,13]:
372372
dec[m,2,13]:
373373
dec[d,2,13]: 0.00000000000000000000000000064314000578826005
374374
dec[c,2,14]: 2147483647
375-
dec[a,2,14]:
376-
dec[s,2,14]:
377-
dec[m,2,14]:
378-
dec[d,2,14]:0.00000000000000000000000000064314000578826005
375+
dec[a,2,14]:7654321.0
376+
dec[s,2,14]:7654321.0
377+
dec[m,2,14]:7654321.0
378+
dec[d,2,14]:7654321.0
379379
dec[c,3,0]: -1
380380
(errno == PGTYPES_NUM_OVERFLOW) - r: -1200
381381
dec[s,3,0]:
@@ -447,10 +447,10 @@ dec[s,3,13]: -1234567890123456789012345675.47
447447
dec[m,3,13]:
448448
dec[d,3,13]: 0.0000000000000000000000000027864000250776002
449449
dec[c,3,14]: 2147483647
450-
dec[a,3,14]:1234567890123456789012345682.35
451-
dec[s,3,14]:-1234567890123456789012345675.47
452-
dec[m,3,14]:
453-
dec[d,3,14]:0.0000000000000000000000000027864000250776002
450+
dec[a,3,14]:7654321.0
451+
dec[s,3,14]:7654321.0
452+
dec[m,3,14]:7654321.0
453+
dec[d,3,14]:7654321.0
454454
dec[c,4,0]: -1
455455
(errno == PGTYPES_NUM_OVERFLOW) - r: -1200
456456
dec[s,4,0]:
@@ -522,10 +522,10 @@ dec[s,4,13]: -1233975400123456789012345678.91
522522
dec[m,4,13]:
523523
dec[d,4,13]: 0.00047991690431925214
524524
dec[c,4,14]: 2147483647
525-
dec[a,4,14]:1235160380123456789012345678.91
526-
dec[s,4,14]:-1233975400123456789012345678.91
527-
dec[m,4,14]:
528-
dec[d,4,14]:0.00047991690431925214
525+
dec[a,4,14]:7654321.0
526+
dec[s,4,14]:7654321.0
527+
dec[m,4,14]:7654321.0
528+
dec[d,4,14]:7654321.0
529529
dec[c,5,0]: -1
530530
(errno == PGTYPES_NUM_OVERFLOW) - r: -1200
531531
dec[s,5,0]:
@@ -597,10 +597,10 @@ dec[s,5,13]: -1234567890123456789012674078.91
597597
dec[m,5,13]:
598598
dec[d,5,13]: -0.00000000000000000000026600400239403602
599599
dec[c,5,14]: 2147483647
600-
dec[a,5,14]:1234567890123456789012017278.91
601-
dec[s,5,14]:-1234567890123456789012674078.91
602-
dec[m,5,14]:
603-
dec[d,5,14]:-0.00000000000000000000026600400239403602
600+
dec[a,5,14]:7654321.0
601+
dec[s,5,14]:7654321.0
602+
dec[m,5,14]:7654321.0
603+
dec[d,5,14]:7654321.0
604604
dec[c,6,0]: -1
605605
(errno == PGTYPES_NUM_OVERFLOW) - r: -1200
606606
dec[s,6,0]:
@@ -672,10 +672,10 @@ dec[s,6,13]:
672672
dec[m,6,13]: *
673673
dec[d,6,13]: *
674674
dec[c,6,14]: 2147483647
675-
dec[a,6,14]:
676-
dec[s,6,14]:
677-
dec[m,6,14]:*
678-
dec[d,6,14]:*
675+
dec[a,6,14]:7654321.0
676+
dec[s,6,14]:7654321.0
677+
dec[m,6,14]:7654321.0
678+
dec[d,6,14]:7654321.0
679679
dec[c,7,0]: -1
680680
(errno == PGTYPES_NUM_OVERFLOW) - r: -1200
681681
dec[s,7,0]:
@@ -747,10 +747,10 @@ dec[s,7,13]:
747747
dec[m,7,13]: 1234567890123456789012345.67891
748748
dec[d,7,13]: 0.00000000000000000000000000000081000000729000007
749749
dec[c,7,14]: 2147483647
750-
dec[a,7,14]:
751-
dec[s,7,14]:
752-
dec[m,7,14]:1234567890123456789012345.67891
753-
dec[d,7,14]:0.00000000000000000000000000000081000000729000007
750+
dec[a,7,14]:7654321.0
751+
dec[s,7,14]:7654321.0
752+
dec[m,7,14]:7654321.0
753+
dec[d,7,14]:7654321.0
754754
dec[c,8,0]: -1
755755
dec[a,8,0]: *
756756
dec[s,8,0]: *
@@ -822,10 +822,10 @@ dec[s,8,13]: -1234567890123456789012345678.91
822822
dec[m,8,13]: 0.000
823823
dec[d,8,13]: 0
824824
dec[c,8,14]: 2147483647
825-
dec[a,8,14]:1234567890123456789012345678.91
826-
dec[s,8,14]:-1234567890123456789012345678.91
827-
dec[m,8,14]:0.000
828-
dec[d,8,14]: 0
825+
dec[a,8,14]:7654321.0
826+
dec[s,8,14]:7654321.0
827+
dec[m,8,14]:7654321.0
828+
dec[d,8,14]:7654321.0
829829
dec[c,9,0]: -1
830830
(errno == PGTYPES_NUM_OVERFLOW) - r: -1200
831831
dec[s,9,0]:
@@ -897,10 +897,10 @@ dec[s,9,13]:
897897
dec[m,9,13]:
898898
dec[d,9,13]: -0.000000000000000000000000000000047991690431925214
899899
dec[c,9,14]: 2147483647
900-
dec[a,9,14]:
901-
dec[s,9,14]:
902-
dec[m,9,14]:
903-
dec[d,9,14]:-0.000000000000000000000000000000047991690431925214
900+
dec[a,9,14]:7654321.0
901+
dec[s,9,14]:7654321.0
902+
dec[m,9,14]:7654321.0
903+
dec[d,9,14]:7654321.0
904904
dec[c,10,0]: -1
905905
(errno == PGTYPES_NUM_OVERFLOW) - r: -1200
906906
dec[s,10,0]:
@@ -972,10 +972,10 @@ dec[s,10,13]:
972972
dec[m,10,13]:
973973
dec[d,10,13]: 0.0000000000000000000000000000026600400239403602
974974
dec[c,10,14]: 2147483647
975-
dec[a,10,14]:
976-
dec[s,10,14]:
977-
dec[m,10,14]:
978-
dec[d,10,14]:0.0000000000000000000000000000026600400239403602
975+
dec[a,10,14]:7654321.0
976+
dec[s,10,14]:7654321.0
977+
dec[m,10,14]:7654321.0
978+
dec[d,10,14]:7654321.0
979979
dec[c,11,0]: -1
980980
(errno == PGTYPES_NUM_OVERFLOW) - r: -1200
981981
dec[s,11,0]:
@@ -1047,10 +1047,10 @@ dec[s,11,13]:
10471047
dec[m,11,13]:
10481048
dec[d,11,13]: 0.00000000000000000000000000040500081364500732
10491049
dec[c,11,14]: 2147483647
1050-
dec[a,11,14]:
1051-
dec[s,11,14]:
1052-
dec[m,11,14]:
1053-
dec[d,11,14]:0.00000000000000000000000000040500081364500732
1050+
dec[a,11,14]:7654321.0
1051+
dec[s,11,14]:7654321.0
1052+
dec[m,11,14]:7654321.0
1053+
dec[d,11,14]:7654321.0
10541054
dec[c,12,0]: -1
10551055
(errno == PGTYPES_NUM_OVERFLOW) - r: -1200
10561056
dec[s,12,0]:
@@ -1122,10 +1122,10 @@ dec[s,12,13]:
11221122
dec[m,12,13]:
11231123
dec[d,12,13]: -0.00000000000000000000000000040500008464500076
11241124
dec[c,12,14]: 2147483647
1125-
dec[a,12,14]:
1126-
dec[s,12,14]:
1127-
dec[m,12,14]:
1128-
dec[d,12,14]:-0.00000000000000000000000000040500008464500076
1125+
dec[a,12,14]:7654321.0
1126+
dec[s,12,14]:7654321.0
1127+
dec[m,12,14]:7654321.0
1128+
dec[d,12,14]:7654321.0
11291129
dec[c,13,0]: -1
11301130
(errno == PGTYPES_NUM_OVERFLOW) - r: -1200
11311131
dec[s,13,0]:
@@ -1197,85 +1197,85 @@ dec[s,13,13]: 0.00
11971197
dec[m,13,13]:
11981198
dec[d,13,13]: 1.00000000000000000
11991199
dec[c,13,14]: 2147483647
1200-
dec[a,13,14]:2469135780246913578024691357.82
1201-
dec[s,13,14]:0.00
1202-
dec[m,13,14]:
1203-
dec[d,13,14]:1.00000000000000000
1200+
dec[a,13,14]:7654321.0
1201+
dec[s,13,14]:7654321.0
1202+
dec[m,13,14]:7654321.0
1203+
dec[d,13,14]:7654321.0
12041204
dec[c,14,0]: 2147483647
1205-
dec[a,14,0]:2469135780246913578024691357.82
1206-
dec[s,14,0]:0.00
1207-
dec[m,14,0]:
1208-
dec[d,14,0]:1.00000000000000000
1205+
dec[a,14,0]:7654321.0
1206+
dec[s,14,0]:7654321.0
1207+
dec[m,14,0]:7654321.0
1208+
dec[d,14,0]:7654321.0
12091209
dec[c,14,1]: 2147483647
1210-
dec[a,14,1]:2469135780246913578024691357.82
1211-
dec[s,14,1]:0.00
1212-
dec[m,14,1]:
1213-
dec[d,14,1]:1.00000000000000000
1210+
dec[a,14,1]:7654321.0
1211+
dec[s,14,1]:7654321.0
1212+
dec[m,14,1]:7654321.0
1213+
dec[d,14,1]:7654321.0
12141214
dec[c,14,2]: 2147483647
1215-
dec[a,14,2]:2469135780246913578024691357.82
1216-
dec[s,14,2]:0.00
1217-
dec[m,14,2]:
1218-
dec[d,14,2]:1.00000000000000000
1215+
dec[a,14,2]:7654321.0
1216+
dec[s,14,2]:7654321.0
1217+
dec[m,14,2]:7654321.0
1218+
dec[d,14,2]:7654321.0
12191219
dec[c,14,3]: 2147483647
1220-
dec[a,14,3]:2469135780246913578024691357.82
1221-
dec[s,14,3]:0.00
1222-
dec[m,14,3]:
1223-
dec[d,14,3]:1.00000000000000000
1220+
dec[a,14,3]:7654321.0
1221+
dec[s,14,3]:7654321.0
1222+
dec[m,14,3]:7654321.0
1223+
dec[d,14,3]:7654321.0
12241224
dec[c,14,4]: 2147483647
1225-
dec[a,14,4]:2469135780246913578024691357.82
1226-
dec[s,14,4]:0.00
1227-
dec[m,14,4]:
1228-
dec[d,14,4]:1.00000000000000000
1225+
dec[a,14,4]:7654321.0
1226+
dec[s,14,4]:7654321.0
1227+
dec[m,14,4]:7654321.0
1228+
dec[d,14,4]:7654321.0
12291229
dec[c,14,5]: 2147483647
1230-
dec[a,14,5]:2469135780246913578024691357.82
1231-
dec[s,14,5]:0.00
1232-
dec[m,14,5]:
1233-
dec[d,14,5]:1.00000000000000000
1230+
dec[a,14,5]:7654321.0
1231+
dec[s,14,5]:7654321.0
1232+
dec[m,14,5]:7654321.0
1233+
dec[d,14,5]:7654321.0
12341234
dec[c,14,6]: 2147483647
1235-
dec[a,14,6]:2469135780246913578024691357.82
1236-
dec[s,14,6]:0.00
1237-
dec[m,14,6]:
1238-
dec[d,14,6]:1.00000000000000000
1235+
dec[a,14,6]:7654321.0
1236+
dec[s,14,6]:7654321.0
1237+
dec[m,14,6]:7654321.0
1238+
dec[d,14,6]:7654321.0
12391239
dec[c,14,7]: 2147483647
1240-
dec[a,14,7]:2469135780246913578024691357.82
1241-
dec[s,14,7]:0.00
1242-
dec[m,14,7]:
1243-
dec[d,14,7]:1.00000000000000000
1240+
dec[a,14,7]:7654321.0
1241+
dec[s,14,7]:7654321.0
1242+
dec[m,14,7]:7654321.0
1243+
dec[d,14,7]:7654321.0
12441244
dec[c,14,8]: 2147483647
1245-
dec[a,14,8]:2469135780246913578024691357.82
1246-
dec[s,14,8]:0.00
1247-
dec[m,14,8]:
1248-
dec[d,14,8]:1.00000000000000000
1245+
dec[a,14,8]:7654321.0
1246+
dec[s,14,8]:7654321.0
1247+
dec[m,14,8]:7654321.0
1248+
dec[d,14,8]:7654321.0
12491249
dec[c,14,9]: 2147483647
1250-
dec[a,14,9]:2469135780246913578024691357.82
1251-
dec[s,14,9]:0.00
1252-
dec[m,14,9]:
1253-
dec[d,14,9]:1.00000000000000000
1250+
dec[a,14,9]:7654321.0
1251+
dec[s,14,9]:7654321.0
1252+
dec[m,14,9]:7654321.0
1253+
dec[d,14,9]:7654321.0
12541254
dec[c,14,10]: 2147483647
1255-
dec[a,14,10]:2469135780246913578024691357.82
1256-
dec[s,14,10]:0.00
1257-
dec[m,14,10]:
1258-
dec[d,14,10]:1.00000000000000000
1255+
dec[a,14,10]:7654321.0
1256+
dec[s,14,10]:7654321.0
1257+
dec[m,14,10]:7654321.0
1258+
dec[d,14,10]:7654321.0
12591259
dec[c,14,11]: 2147483647
1260-
dec[a,14,11]:2469135780246913578024691357.82
1261-
dec[s,14,11]:0.00
1262-
dec[m,14,11]:
1263-
dec[d,14,11]:1.00000000000000000
1260+
dec[a,14,11]:7654321.0
1261+
dec[s,14,11]:7654321.0
1262+
dec[m,14,11]:7654321.0
1263+
dec[d,14,11]:7654321.0
12641264
dec[c,14,12]: 2147483647
1265-
dec[a,14,12]:2469135780246913578024691357.82
1266-
dec[s,14,12]:0.00
1267-
dec[m,14,12]:
1268-
dec[d,14,12]:1.00000000000000000
1265+
dec[a,14,12]:7654321.0
1266+
dec[s,14,12]:7654321.0
1267+
dec[m,14,12]:7654321.0
1268+
dec[d,14,12]:7654321.0
12691269
dec[c,14,13]: 2147483647
1270-
dec[a,14,13]:2469135780246913578024691357.82
1271-
dec[s,14,13]:0.00
1272-
dec[m,14,13]:
1273-
dec[d,14,13]:1.00000000000000000
1270+
dec[a,14,13]:7654321.0
1271+
dec[s,14,13]:7654321.0
1272+
dec[m,14,13]:7654321.0
1273+
dec[d,14,13]:7654321.0
12741274
dec[c,14,14]: 2147483647
1275-
dec[a,14,14]:2469135780246913578024691357.82
1276-
dec[s,14,14]:0.00
1277-
dec[m,14,14]:
1278-
dec[d,14,14]:1.00000000000000000
1275+
dec[a,14,14]:7654321.0
1276+
dec[s,14,14]:7654321.0
1277+
dec[m,14,14]:7654321.0
1278+
dec[d,14,14]:7654321.0
12791279
0: *
12801280
1: -2
12811281
2: 0.794

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp