diff --git a/bench/return.cocci b/bench/return.cocci
new file mode 100644
index 0000000000000000000000000000000000000000..c7895796968a1e1a8a2f3f46561826f237865499
--- /dev/null
+++ b/bench/return.cocci
@@ -0,0 +1,14 @@
+@@
+expression A;
+@@
+
+int main(...)
+{
++ int res;
+...
+
+- return A;
++ res = A;
++ print_int(res);
++ return res;
+}
diff --git a/bench/return.patch b/bench/return.patch
new file mode 100644
index 0000000000000000000000000000000000000000..3f448d2c970d2ac3240a9ef59eb4bd2d921146df
--- /dev/null
+++ b/bench/return.patch
@@ -0,0 +1,1059 @@
+diff -u -p a/sequential/rijndael_dec/rijndael_dec.c b/sequential/rijndael_dec/rijndael_dec.c
+--- a/sequential/rijndael_dec/rijndael_dec.c
++++ b/sequential/rijndael_dec/rijndael_dec.c
+@@ -182,6 +182,7 @@ void _Pragma( "entrypoint" ) rijndael_de
+ #include <siccsrs.h>
+ int main()
+ {
++  int res;
+   sicsetup();
+ 
+   {
+@@ -192,6 +193,8 @@ int main()
+   }
+ 
+   siccsrs();
+-  return ( rijndael_dec_return() );
++  res = (rijndael_dec_return());
++  print_int(res);
++  return res;
+ }
+ 
+diff -u -p a/sequential/gsm_dec/gsm_dec.c b/sequential/gsm_dec/gsm_dec.c
+--- a/sequential/gsm_dec/gsm_dec.c
++++ b/sequential/gsm_dec/gsm_dec.c
+@@ -751,6 +751,7 @@ void _Pragma( "entrypoint" ) gsm_dec_mai
+ #include <siccsrs.h>
+ int main( void )
+ {
++  int res;
+   sicsetup();
+ 
+   {
+@@ -759,5 +760,7 @@ int main( void )
+   }
+ 
+   siccsrs();
+-  return ( gsm_dec_return() );
++  res = (gsm_dec_return());
++  print_int(res);
++  return res;
+ }
+diff -u -p a/sequential/ammunition/ammunition.c b/sequential/ammunition/ammunition.c
+--- a/sequential/ammunition/ammunition.c
++++ b/sequential/ammunition/ammunition.c
+@@ -1173,6 +1173,7 @@ void _Pragma( "entrypoint" ) ammunition_
+ #include <siccsrs.h>
+ int main( void )
+ {
++  int res;
+   sicsetup();
+ 
+   {
+@@ -1182,5 +1183,7 @@ int main( void )
+   }
+ 
+   siccsrs();
+-  return ( ammunition_return() );
++  res = (ammunition_return());
++  print_int(res);
++  return res;
+ }
+diff -u -p a/sequential/g723_enc/g723_enc.c b/sequential/g723_enc/g723_enc.c
+--- a/sequential/g723_enc/g723_enc.c
++++ b/sequential/g723_enc/g723_enc.c
+@@ -871,6 +871,7 @@ void _Pragma( "entrypoint" ) g723_enc_ma
+ #include <siccsrs.h>
+ int main( void )
+ {
++  int res;
+   sicsetup();
+ 
+   {
+@@ -880,6 +881,8 @@ int main( void )
+   }
+ 
+   siccsrs();
+-  return ( g723_enc_return() );
++  res = (g723_enc_return());
++  print_int(res);
++  return res;
+ }
+ 
+diff -u -p a/sequential/epic/epic.c b/sequential/epic/epic.c
+--- a/sequential/epic/epic.c
++++ b/sequential/epic/epic.c
+@@ -1130,6 +1130,7 @@ int epic_return()
+ #include <siccsrs.h>
+ int main( void )
+ {
++  int res;
+   sicsetup();
+ 
+   {
+@@ -1139,5 +1140,7 @@ int main( void )
+   }
+ 
+   siccsrs();
+-  return epic_return();
++  res = epic_return();
++  print_int(res);
++  return res;
+ }
+diff -u -p a/sequential/h264_dec/h264_dec.c b/sequential/h264_dec/h264_dec.c
+--- a/sequential/h264_dec/h264_dec.c
++++ b/sequential/h264_dec/h264_dec.c
+@@ -597,6 +597,7 @@ void _Pragma( "entrypoint" )  h264_dec_m
+ #include <siccsrs.h>
+ int main( void )
+ {
++  int res;
+   sicsetup();
+ 
+   {
+@@ -606,5 +607,7 @@ int main( void )
+   }
+ 
+   siccsrs();
+-  return ( h264_dec_return() );
++  res = (h264_dec_return());
++  print_int(res);
++  return res;
+ }
+diff -u -p a/sequential/cjpeg_transupp/cjpeg_transupp.c b/sequential/cjpeg_transupp/cjpeg_transupp.c
+--- a/sequential/cjpeg_transupp/cjpeg_transupp.c
++++ b/sequential/cjpeg_transupp/cjpeg_transupp.c
+@@ -706,6 +706,7 @@ void _Pragma ( "entrypoint" ) cjpeg_tran
+ #include <siccsrs.h>
+ int main( void )
+ {
++  int res;
+   sicsetup();
+ 
+   {
+@@ -715,5 +716,7 @@ int main( void )
+   }
+ 
+   siccsrs();
+-  return ( cjpeg_transupp_return() - 660 != 0 );
++  res = (cjpeg_transupp_return() - 660 != 0);
++  print_int(res);
++  return res;
+ }
+diff -u -p a/sequential/adpcm_enc/adpcm_enc.c b/sequential/adpcm_enc/adpcm_enc.c
+--- a/sequential/adpcm_enc/adpcm_enc.c
++++ b/sequential/adpcm_enc/adpcm_enc.c
+@@ -748,6 +748,7 @@ void _Pragma( "entrypoint" ) adpcm_enc_m
+ #include <siccsrs.h>
+ int main( void )
+ {
++  int res;
+   sicsetup();
+ 
+   {
+@@ -757,5 +758,7 @@ int main( void )
+   }
+ 
+   siccsrs();
+-  return adpcm_enc_return();
++  res = adpcm_enc_return();
++  print_int(res);
++  return res;
+ }
+diff -u -p a/sequential/susan/susan.c b/sequential/susan/susan.c
+--- a/sequential/susan/susan.c
++++ b/sequential/susan/susan.c
+@@ -2502,6 +2502,7 @@ int susan_return( void )
+ #include <siccsrs.h>
+ int main( void )
+ {
++  int res;
+   sicsetup();
+ 
+   {
+@@ -2511,5 +2512,7 @@ int main( void )
+   }
+ 
+   siccsrs();
+-  return susan_return();
++  res = susan_return();
++  print_int(res);
++  return res;
+ }
+diff -u -p a/sequential/gsm_enc/gsm_enc.c b/sequential/gsm_enc/gsm_enc.c
+--- a/sequential/gsm_enc/gsm_enc.c
++++ b/sequential/gsm_enc/gsm_enc.c
+@@ -2218,6 +2218,7 @@ void _Pragma( "entrypoint" ) gsm_enc_mai
+ #include <siccsrs.h>
+ int main( void )
+ {
++  int res;
+   sicsetup();
+ 
+   {
+@@ -2226,5 +2227,7 @@ int main( void )
+   }
+ 
+   siccsrs();
+-  return ( gsm_enc_return() );
++  res = (gsm_enc_return());
++  print_int(res);
++  return res;
+ }
+diff -u -p a/sequential/huff_enc/huff_enc.c b/sequential/huff_enc/huff_enc.c
+--- a/sequential/huff_enc/huff_enc.c
++++ b/sequential/huff_enc/huff_enc.c
+@@ -584,6 +584,7 @@ void _Pragma( "entrypoint" ) huff_enc_ma
+ #include <siccsrs.h>
+ int main( void )
+ {
++  int res;
+   sicsetup();
+ 
+   {
+@@ -592,5 +593,7 @@ int main( void )
+   }
+ 
+   siccsrs();
+-  return ( huff_enc_return() );
++  res = (huff_enc_return());
++  print_int(res);
++  return res;
+ }
+diff -u -p a/sequential/fmref/fmref.c b/sequential/fmref/fmref.c
+--- a/sequential/fmref/fmref.c
++++ b/sequential/fmref/fmref.c
+@@ -75,6 +75,7 @@ int fmref_return( void )
+ #include <siccsrs.h>
+ int main( void )
+ {
++  int res;
+   sicsetup();
+ 
+   {
+@@ -83,7 +84,9 @@ int main( void )
+   }
+ 
+   siccsrs();
+-  return fmref_return();
++  res = fmref_return();
++  print_int(res);
++  return res;
+ }
+ 
+ FloatBuffer fmref_fb1, fmref_fb2, fmref_fb3, fmref_fb4;
+diff -u -p a/sequential/huff_dec/huff_dec.c b/sequential/huff_dec/huff_dec.c
+--- a/sequential/huff_dec/huff_dec.c
++++ b/sequential/huff_dec/huff_dec.c
+@@ -377,6 +377,7 @@ void _Pragma( "entrypoint" ) huff_dec_ma
+ #include <siccsrs.h>
+ int main( void )
+ {
++  int res;
+   sicsetup();
+ 
+   {
+@@ -385,5 +386,7 @@ int main( void )
+   }
+ 
+   siccsrs();
+-  return ( huff_dec_return() );
++  res = (huff_dec_return());
++  print_int(res);
++  return res;
+ }
+diff -u -p a/sequential/petrinet/petrinet.c b/sequential/petrinet/petrinet.c
+--- a/sequential/petrinet/petrinet.c
++++ b/sequential/petrinet/petrinet.c
+@@ -976,6 +976,7 @@ int petrinet_return( void )
+ #include <siccsrs.h>
+ int main( void )
+ {
++  int res;
+   sicsetup();
+ 
+   {
+@@ -984,6 +985,8 @@ int main( void )
+   }
+ 
+   siccsrs();
+-  return ( petrinet_return() );
++  res = (petrinet_return());
++  print_int(res);
++  return res;
+ }
+ 
+diff -u -p a/sequential/adpcm_dec/adpcm_dec.c b/sequential/adpcm_dec/adpcm_dec.c
+--- a/sequential/adpcm_dec/adpcm_dec.c
++++ b/sequential/adpcm_dec/adpcm_dec.c
+@@ -704,6 +704,7 @@ void _Pragma( "entrypoint" ) adpcm_dec_m
+ #include <siccsrs.h>
+ int main( void )
+ {
++  int res;
+   sicsetup();
+ 
+   {
+@@ -713,5 +714,7 @@ int main( void )
+   }
+ 
+   siccsrs();
+-  return ( adpcm_dec_return() );
++  res = (adpcm_dec_return());
++  print_int(res);
++  return res;
+ }
+diff -u -p a/sequential/dijkstra/dijkstra.c b/sequential/dijkstra/dijkstra.c
+--- a/sequential/dijkstra/dijkstra.c
++++ b/sequential/dijkstra/dijkstra.c
+@@ -191,6 +191,7 @@ void _Pragma( "entrypoint" ) dijkstra_ma
+ #include <siccsrs.h>
+ int main( void )
+ {
++  int res;
+   sicsetup();
+ 
+   {
+@@ -200,5 +201,7 @@ int main( void )
+   }
+ 
+   siccsrs();
+-  return ( dijkstra_return() );
++  res = (dijkstra_return());
++  print_int(res);
++  return res;
+ }
+diff -u -p a/sequential/cjpeg_wrbmp/cjpeg_wrbmp.c b/sequential/cjpeg_wrbmp/cjpeg_wrbmp.c
+--- a/sequential/cjpeg_wrbmp/cjpeg_wrbmp.c
++++ b/sequential/cjpeg_wrbmp/cjpeg_wrbmp.c
+@@ -210,6 +210,7 @@ int cjpeg_wrbmp_return()
+ #include <siccsrs.h>
+ int main( void )
+ {
++  int res;
+   sicsetup();
+ 
+   {
+@@ -219,7 +220,9 @@ int main( void )
+   }
+ 
+   siccsrs();
+-  return ( cjpeg_wrbmp_return() );
++  res = (cjpeg_wrbmp_return());
++  print_int(res);
++  return res;
+ }
+ 
+ #endif /* BMP_SUPPORTED */
+diff -u -p a/sequential/statemate/statemate.c b/sequential/statemate/statemate.c
+--- a/sequential/statemate/statemate.c
++++ b/sequential/statemate/statemate.c
+@@ -1272,6 +1272,7 @@ void _Pragma ( "entrypoint" ) statemate_
+ #include <siccsrs.h>
+ int main ( void )
+ {
++  int res;
+   sicsetup();
+ 
+   {
+@@ -1281,5 +1282,7 @@ int main ( void )
+   }
+ 
+   siccsrs();
+-  return statemate_return();
++  res = statemate_return();
++  print_int(res);
++  return res;
+ }
+diff -u -p a/sequential/ndes/ndes.c b/sequential/ndes/ndes.c
+--- a/sequential/ndes/ndes.c
++++ b/sequential/ndes/ndes.c
+@@ -384,6 +384,7 @@ void _Pragma( "entrypoint" ) ndes_main()
+ 
+ int main( void )
+ {
++  int res;
+   sicsetup();
+ 
+   {
+@@ -393,5 +394,7 @@ int main( void )
+   }
+ 
+   siccsrs();
+-  return ( ndes_return() );
++  res = (ndes_return());
++  print_int(res);
++  return res;
+ }
+diff -u -p a/sequential/anagram/anagram.c b/sequential/anagram/anagram.c
+--- a/sequential/anagram/anagram.c
++++ b/sequential/anagram/anagram.c
+@@ -654,6 +654,7 @@ void _Pragma( "entrypoint" ) anagram_mai
+ 
+ int main( void )
+ {
++  int res;
+   sicsetup();
+ 
+   {
+@@ -663,5 +664,7 @@ int main( void )
+   }
+ 
+   siccsrs();
+-  return anagram_return();
++  res = anagram_return();
++  print_int(res);
++  return res;
+ }
+diff -u -p a/sequential/audiobeam/audiobeam.c b/sequential/audiobeam/audiobeam.c
+--- a/sequential/audiobeam/audiobeam.c
++++ b/sequential/audiobeam/audiobeam.c
+@@ -578,6 +578,7 @@ void _Pragma( "entrypoint" ) audiobeam_m
+ #include <siccsrs.h>
+ int main( void )
+ {
++  int res;
+   sicsetup();
+ 
+   {
+@@ -587,6 +588,8 @@ int main( void )
+   }
+ 
+   siccsrs();
+-  return ( audiobeam_return() );
++  res = (audiobeam_return());
++  print_int(res);
++  return res;
+ }
+ 
+diff -u -p a/sequential/mpeg2/mpeg2.c b/sequential/mpeg2/mpeg2.c
+--- a/sequential/mpeg2/mpeg2.c
++++ b/sequential/mpeg2/mpeg2.c
+@@ -13206,6 +13206,7 @@ void _Pragma ( "entrypoint" ) mpeg2_main
+ #include <siccsrs.h>
+ int main( void )
+ {
++  int res;
+   sicsetup();
+ 
+   {
+@@ -13215,5 +13216,7 @@ int main( void )
+   }
+ 
+   siccsrs();
+-  return ( mpeg2_return() - ( -116 ) != 0 );
++  res = (mpeg2_return() - (-116) != 0);
++  print_int(res);
++  return res;
+ }
+diff -u -p a/sequential/rijndael_enc/rijndael_enc.c b/sequential/rijndael_enc/rijndael_enc.c
+--- a/sequential/rijndael_enc/rijndael_enc.c
++++ b/sequential/rijndael_enc/rijndael_enc.c
+@@ -225,6 +225,7 @@ void _Pragma( "entrypoint" ) rijndael_en
+ #include <siccsrs.h>
+ int main( void )
+ {
++  int res;
+   sicsetup();
+ 
+   {
+@@ -234,6 +235,8 @@ int main( void )
+   }
+ 
+   siccsrs();
+-  return ( rijndael_enc_return() );
++  res = (rijndael_enc_return());
++  print_int(res);
++  return res;
+ }
+ 
+diff -u -p a/kernel/fir2dim/fir2dim.c b/kernel/fir2dim/fir2dim.c
+--- a/kernel/fir2dim/fir2dim.c
++++ b/kernel/fir2dim/fir2dim.c
+@@ -192,6 +192,7 @@ void _Pragma( "entrypoint" ) fir2dim_mai
+ #include <siccsrs.h>
+ int main( void )
+ {
++  int res;
+   sicsetup();
+ 
+   {
+@@ -201,6 +202,8 @@ int main( void )
+   }
+ 
+   siccsrs();
+-  return ( fir2dim_return() );
++  res = (fir2dim_return());
++  print_int(res);
++  return res;
+ }
+ 
+diff -u -p a/kernel/deg2rad/deg2rad.c b/kernel/deg2rad/deg2rad.c
+--- a/kernel/deg2rad/deg2rad.c
++++ b/kernel/deg2rad/deg2rad.c
+@@ -85,6 +85,7 @@ void _Pragma( "entrypoint" ) deg2rad_mai
+ #include <siccsrs.h>
+ int main( void )
+ {
++  int res;
+   sicsetup();
+ 
+   {
+@@ -93,5 +94,7 @@ int main( void )
+   }
+ 
+   siccsrs();
+-  return deg2rad_return();
++  res = deg2rad_return();
++  print_int(res);
++  return res;
+ }
+diff -u -p a/kernel/ludcmp/ludcmp.c b/kernel/ludcmp/ludcmp.c
+--- a/kernel/ludcmp/ludcmp.c
++++ b/kernel/ludcmp/ludcmp.c
+@@ -171,6 +171,7 @@ void _Pragma( "entrypoint" ) ludcmp_main
+ #include <siccsrs.h>
+ int main( void )
+ {
++  int res;
+   sicsetup();
+ 
+   {
+@@ -180,5 +181,7 @@ int main( void )
+   }
+ 
+   siccsrs();
+-  return ( ludcmp_return() );
++  res = (ludcmp_return());
++  print_int(res);
++  return res;
+ }
+diff -u -p a/kernel/quicksort/quicksort.c b/kernel/quicksort/quicksort.c
+--- a/kernel/quicksort/quicksort.c
++++ b/kernel/quicksort/quicksort.c
+@@ -239,6 +239,7 @@ void _Pragma ( "entrypoint" ) quicksort_
+ #include <siccsrs.h>
+ int main( void )
+ {
++  int res;
+   sicsetup();
+ 
+   {
+@@ -248,5 +249,7 @@ int main( void )
+   }
+ 
+   siccsrs();
+-  return ( quicksort_return() - 1527923179 != 0 );
++  res = (quicksort_return() - 1527923179 != 0);
++  print_int(res);
++  return res;
+ }
+diff -u -p a/kernel/countnegative/countnegative.c b/kernel/countnegative/countnegative.c
+--- a/kernel/countnegative/countnegative.c
++++ b/kernel/countnegative/countnegative.c
+@@ -134,6 +134,7 @@ void _Pragma( "entrypoint" ) countnegati
+ #include <siccsrs.h>
+ int main( void )
+ {
++  int res;
+   sicsetup();
+ 
+   {
+@@ -143,5 +144,7 @@ int main( void )
+   }
+ 
+   siccsrs();
+-  return ( countnegative_return() );
++  res = (countnegative_return());
++  print_int(res);
++  return res;
+ }
+diff -u -p a/kernel/fft/fft.c b/kernel/fft/fft.c
+--- a/kernel/fft/fft.c
++++ b/kernel/fft/fft.c
+@@ -326,6 +326,7 @@ void _Pragma( "entrypoint" ) fft_main( v
+ #include <siccsrs.h>
+ int main( void )
+ {
++  int res;
+   sicsetup();
+ 
+   {
+@@ -336,5 +337,7 @@ int main( void )
+   }
+ 
+   siccsrs();
+-  return fft_return();
++  res = fft_return();
++  print_int(res);
++  return res;
+ }
+diff -u -p a/kernel/md5/md5.c b/kernel/md5/md5.c
+--- a/kernel/md5/md5.c
++++ b/kernel/md5/md5.c
+@@ -625,6 +625,7 @@ void _Pragma( "entrypoint" ) md5_main( v
+ #include <siccsrs.h>
+ int main( void )
+ {
++  int res;
+   sicsetup();
+ 
+   {
+@@ -634,6 +635,8 @@ int main( void )
+   }
+ 
+   siccsrs();
+-  return md5_return();
++  res = md5_return();
++  print_int(res);
++  return res;
+ }
+ 
+diff -u -p a/kernel/sha/sha.c b/kernel/sha/sha.c
+--- a/kernel/sha/sha.c
++++ b/kernel/sha/sha.c
+@@ -214,6 +214,7 @@ int sha_return( void )
+ #include <siccsrs.h>
+ int main ( void )
+ {
++  int res;
+   sicsetup();
+ 
+   {
+@@ -222,5 +223,7 @@ int main ( void )
+   }
+ 
+   siccsrs();
+-  return ( sha_return() );
++  res = (sha_return());
++  print_int(res);
++  return res;
+ }
+diff -u -p a/kernel/complex_updates/complex_updates.c b/kernel/complex_updates/complex_updates.c
+--- a/kernel/complex_updates/complex_updates.c
++++ b/kernel/complex_updates/complex_updates.c
+@@ -129,6 +129,7 @@ void _Pragma( "entrypoint" ) complex_upd
+ #include <siccsrs.h>
+ int main( void )
+ {
++  int res;
+   sicsetup();
+ 
+   {
+@@ -139,5 +140,7 @@ int main( void )
+   }
+ 
+   siccsrs();
+-  return complex_updates_return();
++  res = complex_updates_return();
++  print_int(res);
++  return res;
+ }
+diff -u -p a/kernel/insertsort/insertsort.c b/kernel/insertsort/insertsort.c
+--- a/kernel/insertsort/insertsort.c
++++ b/kernel/insertsort/insertsort.c
+@@ -133,6 +133,7 @@ void _Pragma( "entrypoint" ) insertsort_
+ #include <siccsrs.h>
+ int main( void )
+ {
++  int res;
+   sicsetup();
+ 
+   {
+@@ -141,6 +142,8 @@ int main( void )
+   }
+ 
+   siccsrs();
+-  return ( insertsort_return() );
++  res = (insertsort_return());
++  print_int(res);
++  return res;
+ }
+ 
+diff -u -p a/kernel/cubic/cubic.c b/kernel/cubic/cubic.c
+--- a/kernel/cubic/cubic.c
++++ b/kernel/cubic/cubic.c
+@@ -151,6 +151,7 @@ void cubic_solveCubic( float a, float b,
+ #include <siccsrs.h>
+ int main( void )
+ {
++  int res;
+   sicsetup();
+ 
+   {
+@@ -159,5 +160,7 @@ int main( void )
+   }
+ 
+   siccsrs();
+-  return cubic_return();
++  res = cubic_return();
++  print_int(res);
++  return res;
+ }
+diff -u -p a/kernel/st/st.c b/kernel/st/st.c
+--- a/kernel/st/st.c
++++ b/kernel/st/st.c
+@@ -220,6 +220,7 @@ void _Pragma( "entrypoint" ) st_main( vo
+ #include <siccsrs.h>
+ int main( void )
+ {
++  int res;
+   sicsetup();
+ 
+   {
+@@ -229,5 +230,7 @@ int main( void )
+   }
+ 
+   siccsrs();
+-  return ( st_return() );
++  res = (st_return());
++  print_int(res);
++  return res;
+ }
+diff -u -p a/kernel/jfdctint/jfdctint.c b/kernel/jfdctint/jfdctint.c
+--- a/kernel/jfdctint/jfdctint.c
++++ b/kernel/jfdctint/jfdctint.c
+@@ -313,6 +313,7 @@ void _Pragma ( "entrypoint" ) jfdctint_m
+ #include <siccsrs.h>
+ int main( void )
+ {
++  int res;
+   sicsetup();
+ 
+   {
+@@ -322,5 +323,7 @@ int main( void )
+   }
+ 
+   siccsrs();
+-  return ( jfdctint_return() );
++  res = (jfdctint_return());
++  print_int(res);
++  return res;
+ }
+diff -u -p a/kernel/bitcount/bitcount.c b/kernel/bitcount/bitcount.c
+--- a/kernel/bitcount/bitcount.c
++++ b/kernel/bitcount/bitcount.c
+@@ -140,6 +140,7 @@ void _Pragma( "entrypoint" ) bitcount_ma
+ #include <siccsrs.h>
+ int main( void )
+ {
++  int res;
+   sicsetup();
+ 
+   {
+@@ -149,5 +150,7 @@ int main( void )
+   }
+ 
+   siccsrs();
+-  return ( bitcount_return() );
++  res = (bitcount_return());
++  print_int(res);
++  return res;
+ }
+diff -u -p a/kernel/binarysearch/binarysearch.c b/kernel/binarysearch/binarysearch.c
+--- a/kernel/binarysearch/binarysearch.c
++++ b/kernel/binarysearch/binarysearch.c
+@@ -150,6 +150,7 @@ void _Pragma( "entrypoint" ) binarysearc
+ #include <siccsrs.h>
+ int main( void )
+ {
++  int res;
+   sicsetup();
+ 
+   {
+@@ -159,5 +160,7 @@ int main( void )
+   }
+ 
+   siccsrs();
+-  return ( binarysearch_return() - ( -1 ) != 0 );
++  res = (binarysearch_return() - (-1) != 0);
++  print_int(res);
++  return res;
+ }
+diff -u -p a/kernel/bsort/bsort.c b/kernel/bsort/bsort.c
+--- a/kernel/bsort/bsort.c
++++ b/kernel/bsort/bsort.c
+@@ -126,6 +126,7 @@ void _Pragma( "entrypoint" ) bsort_main(
+ 
+ int main( void )
+ {
++  int res;
+   sicsetup();
+ 
+   {
+@@ -135,5 +136,7 @@ int main( void )
+   }
+ 
+   siccsrs();
+-  return bsort_return();
++  res = bsort_return();
++  print_int(res);
++  return res;
+ }
+diff -u -p a/kernel/minver/minver.c b/kernel/minver/minver.c
+--- a/kernel/minver/minver.c
++++ b/kernel/minver/minver.c
+@@ -250,6 +250,7 @@ void _Pragma( "entrypoint" ) minver_main
+ #include <siccsrs.h>
+ int main( void )
+ {
++  int res;
+   sicsetup();
+ 
+   {
+@@ -259,7 +260,9 @@ int main( void )
+   }
+ 
+   siccsrs();
+-  return ( minver_return() );
++  res = (minver_return());
++  print_int(res);
++  return res;
+ }
+ 
+ 
+diff -u -p a/kernel/prime/prime.c b/kernel/prime/prime.c
+--- a/kernel/prime/prime.c
++++ b/kernel/prime/prime.c
+@@ -131,6 +131,7 @@ void _Pragma( "entrypoint" ) prime_main(
+ #include <siccsrs.h>
+ int main( void )
+ {
++  int res;
+   sicsetup();
+ 
+   {
+@@ -140,7 +141,9 @@ int main( void )
+   }
+ 
+   siccsrs();
+-  return ( prime_return() ) ;
++  res = (prime_return());
++  print_int(res);
++  return res;
+ }
+ 
+ 
+diff -u -p a/kernel/fac/fac.c b/kernel/fac/fac.c
+--- a/kernel/fac/fac.c
++++ b/kernel/fac/fac.c
+@@ -90,6 +90,7 @@ void _Pragma( "entrypoint" ) fac_main ()
+ #include <siccsrs.h>
+ int main ( void )
+ {
++  int res;
+   sicsetup();
+ 
+   {
+@@ -99,5 +100,7 @@ int main ( void )
+   }
+ 
+   siccsrs();
+-  return ( fac_return() );
++  res = (fac_return());
++  print_int(res);
++  return res;
+ }
+diff -u -p a/kernel/filterbank/filterbank.c b/kernel/filterbank/filterbank.c
+--- a/kernel/filterbank/filterbank.c
++++ b/kernel/filterbank/filterbank.c
+@@ -164,6 +164,7 @@ void filterbank_core( float r[ 256 ],
+ 
+ int main( void )
+ {
++  int res;
+   sicsetup();
+ 
+   {
+@@ -173,5 +174,7 @@ int main( void )
+   }
+ 
+   siccsrs();
+-  return filterbank_return();
++  res = filterbank_return();
++  print_int(res);
++  return res;
+ }
+diff -u -p a/kernel/recursion/recursion.c b/kernel/recursion/recursion.c
+--- a/kernel/recursion/recursion.c
++++ b/kernel/recursion/recursion.c
+@@ -67,6 +67,7 @@ void _Pragma( "entrypoint" ) recursion_m
+ #include <siccsrs.h>
+ int main( void )
+ {
++  int res;
+   sicsetup();
+ 
+   {
+@@ -75,5 +76,7 @@ int main( void )
+   }
+ 
+   siccsrs();
+-  return ( recursion_return() );
++  res = (recursion_return());
++  print_int(res);
++  return res;
+ }
+diff -u -p a/kernel/cosf/cosf.c b/kernel/cosf/cosf.c
+--- a/kernel/cosf/cosf.c
++++ b/kernel/cosf/cosf.c
+@@ -80,6 +80,7 @@ void _Pragma( "entrypoint" ) cosf_main(
+ #include <siccsrs.h>
+ int main( void )
+ {
++  int res;
+   sicsetup();
+ 
+   {
+@@ -88,6 +89,8 @@ int main( void )
+   }
+ 
+   siccsrs();
+-  return cosf_return();
++  res = cosf_return();
++  print_int(res);
++  return res;
+ }
+ 
+diff -u -p a/kernel/iir/iir.c b/kernel/iir/iir.c
+--- a/kernel/iir/iir.c
++++ b/kernel/iir/iir.c
+@@ -157,6 +157,7 @@ void _Pragma( "entrypoint" ) iir_main( v
+ #include <siccsrs.h>
+ int main( void )
+ {
++  int res;
+   sicsetup();
+ 
+   {
+@@ -166,5 +167,7 @@ int main( void )
+   }
+ 
+   siccsrs();
+-  return ( iir_return() - 400 != 0 );
++  res = (iir_return() - 400 != 0);
++  print_int(res);
++  return res;
+ }
+diff -u -p a/kernel/bitonic/bitonic.c b/kernel/bitonic/bitonic.c
+--- a/kernel/bitonic/bitonic.c
++++ b/kernel/bitonic/bitonic.c
+@@ -151,6 +151,7 @@ void _Pragma ( "entrypoint" ) bitonic_ma
+ #include <siccsrs.h>
+ int main( void )
+ {
++  int res;
+   sicsetup();
+ 
+   {
+@@ -160,5 +161,7 @@ int main( void )
+   }
+ 
+   siccsrs();
+-  return ( bitonic_return() );
++  res = (bitonic_return());
++  print_int(res);
++  return res;
+ }
+diff -u -p a/kernel/rad2deg/rad2deg.c b/kernel/rad2deg/rad2deg.c
+--- a/kernel/rad2deg/rad2deg.c
++++ b/kernel/rad2deg/rad2deg.c
+@@ -84,6 +84,7 @@ void _Pragma ( "entrypoint" ) rad2deg_ma
+ #include <siccsrs.h>
+ int main( void )
+ {
++  int res;
+   sicsetup();
+ 
+   {
+@@ -92,5 +93,7 @@ int main( void )
+   }
+ 
+   siccsrs();
+-  return rad2deg_return();
++  res = rad2deg_return();
++  print_int(res);
++  return res;
+ }
+diff -u -p a/kernel/lms/lms.c b/kernel/lms/lms.c
+--- a/kernel/lms/lms.c
++++ b/kernel/lms/lms.c
+@@ -197,6 +197,7 @@ int lms_return( void )
+ #include <siccsrs.h>
+ int main()
+ {
++  int res;
+   sicsetup();
+ 
+   {
+@@ -205,6 +206,8 @@ int main()
+   }
+ 
+   siccsrs();
+-  return ( lms_return() );
++  res = (lms_return());
++  print_int(res);
++  return res;
+ }
+ 
+diff -u -p a/kernel/matrix1/matrix1.c b/kernel/matrix1/matrix1.c
+--- a/kernel/matrix1/matrix1.c
++++ b/kernel/matrix1/matrix1.c
+@@ -163,6 +163,7 @@ void _Pragma ( "entrypoint" ) matrix1_ma
+ #include <siccsrs.h>
+ int main( void )
+ {
++  int res;
+   sicsetup();
+ 
+   {
+@@ -172,5 +173,7 @@ int main( void )
+   }
+ 
+   siccsrs();
+-  return matrix1_return();
++  res = matrix1_return();
++  print_int(res);
++  return res;
+ }
+diff -u -p a/kernel/isqrt/isqrt.c b/kernel/isqrt/isqrt.c
+--- a/kernel/isqrt/isqrt.c
++++ b/kernel/isqrt/isqrt.c
+@@ -150,6 +150,7 @@ void _Pragma( "entrypoint" ) isqrt_main(
+ #include <siccsrs.h>
+ int main( void )
+ {
++  int res;
+   sicsetup();
+ 
+   {
+@@ -158,6 +159,8 @@ int main( void )
+   }
+ 
+   siccsrs();
+-  return isqrt_return();
++  res = isqrt_return();
++  print_int(res);
++  return res;
+ }
+ 
+diff -u -p a/kernel/pm/pm.c b/kernel/pm/pm.c
+--- a/kernel/pm/pm.c
++++ b/kernel/pm/pm.c
+@@ -737,6 +737,7 @@ int pm_kernel( pm_data_t *pmdata )
+ 
+ int main( void )
+ {
++  int res;
+   sicsetup();
+ 
+   {
+@@ -746,5 +747,7 @@ int main( void )
+   }
+ 
+   siccsrs();
+-  return pm_return();
++  res = pm_return();
++  print_int(res);
++  return res;
+ }