![]() Testcases compiled with -Os were failing because static functions and static variables were being optimized away, because of improper data type casts, and because strict aliasing (whatever that is) was resulting in some loss of data. These changes eliminate those known problems. gcc/cobol * cobol1.cc: (cobol_langhook_post_options): Implemented in order to set flag_strict_aliasing to zero. * genapi.cc: (set_user_status): Add comment. (parser_intrinsic_subst): Expand SHOW_PARSE information. (psa_global): Change names of return-code and upsi globals, (psa_FldLiteralA): Set DECL_PRESERVE_P for FldLiteralA. * gengen.cc: (show_type): Add POINTER type. (gg_define_function_with_no_parameters): Set DECL_PRESERVE_P for COBOL- style nested programs. (gg_array_of_bytes): Fix bad cast. libgcobol * charmaps.h: Change __gg__data_return_code to 'short' type. * constants.cc: Likewise. |
||
---|---|---|
.. | ||
acinclude.m4 | ||
aclocal.m4 | ||
ChangeLog | ||
charmaps.cc | ||
charmaps.h | ||
common-defs.h | ||
config.h.in | ||
configure | ||
configure.ac | ||
configure.tgt | ||
constants.cc | ||
ec.h | ||
exceptl.h | ||
gcobolio.h | ||
gfileio.cc | ||
gfileio.h | ||
gmath.cc | ||
gmath.h | ||
intrinsic.cc | ||
io.cc | ||
io.h | ||
libgcobol.cc | ||
libgcobol.h | ||
Makefile.am | ||
Makefile.in | ||
README | ||
valconv.cc | ||
valconv.h |
The libgcobol is intended for use entirely and solely by executables created from COBOL source code by the GCOBOL "COBOL for GCC" front end. libgcobol.a can be staticly linked in, but it makes for very large binaries. We tend to use that for debugging the GCOBOL compiler, and not much else Many of the functions in the library are called by the executable code generated by the GCOBOL compiler through GIMPLE tags, and thus prototypes -- which are part of the C/C++ programming paradigm -- are not used. Both the calling program and the called program use the extern "C" construction so that the linker can find the functions, and they need to agree ahead of time about the meaning of passed parameters.