mirror of
git://repo.or.cz/tinycc.git
synced 2026-06-17 23:54:16 +08:00
Some checks are pending
build and test / test-x86_64-linux (push) Waiting to run
build and test / test-x86_64-osx (push) Waiting to run
build and test / test-aarch64-osx (push) Waiting to run
build and test / test-x86_64-win32 (push) Waiting to run
build and test / test-i386-win32 (push) Waiting to run
build and test / test-armv7-linux (push) Waiting to run
build and test / test-aarch64-linux (push) Waiting to run
build and test / test-riscv64-linux (push) Waiting to run
While adding some testcases for attribute cleanup I found a bug in the riscv code. It modifies the sv->c.i in load_symofs. If a structure contains more then one element only the first is stored correctly. This only happens on a large stack frame. Fixed by saving/restoring sv->c.i.
76 lines
829 B
Plaintext
76 lines
829 B
Plaintext
c: a
|
|
c: o
|
|
glob_i: 65536
|
|
oo: 2.600000
|
|
c: f
|
|
str: I don't think this should be print(but gcc got it wrong too)
|
|
because what if free was call inside cleanup function I don't think this should be print(but gcc got it wrong too)
|
|
should be print before
|
|
str: that
|
|
str: this should appear only once
|
|
str: -that2
|
|
str: -that
|
|
str: test2
|
|
str: one
|
|
---- 1
|
|
str: two
|
|
str: three
|
|
-- loop 0 --
|
|
100
|
|
100
|
|
100
|
|
100
|
|
100
|
|
100
|
|
100
|
|
100
|
|
100
|
|
100
|
|
10
|
|
-- loop 1 --
|
|
200
|
|
200
|
|
200
|
|
200
|
|
200
|
|
200
|
|
200
|
|
200
|
|
200
|
|
200
|
|
10
|
|
-- loop 2 --
|
|
300
|
|
0
|
|
-- loop 3 --
|
|
400
|
|
500
|
|
400
|
|
after break
|
|
1000
|
|
42
|
|
42
|
|
42 43 44 45 46 47 48 49
|
|
42 43 44 45 46 47 48 49
|
|
42 43 44 45
|
|
42 43 44 45
|
|
42 43
|
|
42 43
|
|
42.000000
|
|
42.000000
|
|
42 43
|
|
42 43
|
|
42.000000 43.000000 44.000000 45.000000
|
|
42.000000 43.000000 44.000000 45.000000
|
|
42
|
|
42
|
|
---- 0
|
|
---- 1
|
|
str: plop
|
|
str: tata !
|
|
str: 3
|
|
str: 2
|
|
str: 1
|
|
str: last goto out
|
|
str: wololo
|