📄 changelog.0
字号:
New functions that are "safe" variants of convert(), to catch errors that ffecom_expr_intrinsic_() now no longer catches. (ffecom_arglist_expr_): Ensure arguments are not converted to narrower types. (ffecom_call_): Ensure return value is not converted to a wider type. (ffecom_char_args_): Use new ffeintrin_gfrt_direct() routine. (ffecom_expr_intrinsic_): Simplify how run-time routine is selected (via `gfrt' only now; lose the redundant `ix' variable). Eliminate the `library' label; any code that doesn't return directly just `break's out now with `gfrt' set appropriately. Set `gfrt' to default choice initially, either a fast direct form or, if not available, a slower indirect-callable form. (ffecom_make_gfrt_): No longer need to do special check for complex; it's built into the new return-type regime. (ffecom_ptr_to_expr): Use new ffeintrin_gfrt_indirect() routine. * intrin.c, intrin.h: `gfrt' field replaced with three fields, so it is easier to provide faster direct-callable and GNU-convention indirect-callable routines in the future. DEFIMP macro adjusted accordingly, along with all its uses. (ffeintrin_gfrt_direct): New function. (ffeintrin_gfrt_indirect): Ditto. (ffeintrin_is_actualarg): If `-fno-f2c' is in effect, require a GNU-callable version of intrinsic instead of an f2c-callable version, so indirect calling is still checked. * intrin.def: Replace one GFRT field with the three new fields, as appropriate for each DEFIMP intrinsic. * com.c (ffecom_stabilize_aggregate_, ffecom_convert_to_complex_): Make these `static'.Thu Aug 7 11:24:34 1997 Craig Burley <burley@gnu.ai.mit.edu> Provide means for front end to determine actual "standard" return type for an intrinsic if it is passed as an actual argument: * com.h, com.c (ffecom_gfrt_basictype, ffecom_gfrt_kindtype): New functions. (ffecom_gfrt_kind_type_): Replaced with new function. All callers updated. (ffecom_make_gfrt_): No longer need do anything with kind type. * intrin.c (ffeintrin_basictype, ffeintrin_kindtype): Now returns correct type info for specific intrinsic (based on type of run-time-library implementation).Wed Aug 6 23:08:46 1997 Craig Burley <burley@gnu.ai.mit.edu> * global.c (ffeglobal_ref_progunit_): Don't reset number of arguments just due to new type info, so useful warnings can be issued.1997-08-06 Dave Love <d.love@dl.ac.uk> * intrin.def: Fix IDATE_vxt argument order. * intdoc.h: Likewise.Thu Jul 31 22:22:03 1997 Craig Burley <burley@gnu.ai.mit.edu> * global.c (ffeglobal_proc_ref_arg): If REF/DESCR disagreement, DESCR is CHARACTER, and types disagree, pretend the argsummary agrees so the message ends up being about type disagreement. (ffeglobal_proc_def_arg): Ditto. * expr.c (ffeexpr_token_first_rhs_3_): Set info for LABTOK to NONE of everything, to avoid misdiagnosing filewide usage of alternate returns.Sun Jul 20 23:07:47 1997 Craig Burley <burley@gnu.ai.mit.edu> * com.c (ffecom_sym_transform_): If type gets set to error_mark_node, just return that for transformed symbol. (ffecom_member_phase2_): If type gets set to error_mark_node, just return. (ffecom_check_size_overflow_): Add `dummy' argument to flag that type is for a dummy, update all callers.Sun Jul 13 17:40:53 1997 Craig Burley <burley@gnu.ai.mit.edu> Fix 970712-1.f: * where.c (ffewhere_set_from_track): If start point is too large, just use initial start point. 0.6 should fix all this properly. Fix 970712-2.f: * com.c (ffecom_sym_transform_): Preserve error_mark_node for type. (ffecom_type_localvar_): Ditto. (ffecom_sym_transform_): If type is error_mark_node, don't error-check decl size, because back end responds by setting that to an integer 0 instead of error_mark_node. (ffecom_transform_common_): Same as earlier fix to _transform_ in that size is checked by dividing BITS_PER_UNIT instead of multiplying. (ffecom_transform_equiv_): Ditto. Fix 970712-3.f: * stb.c (ffestb_R10014_): Fix flaky fall-through in error test for FFELEX_typeCONCAT by just replicating the code, and do FFELEX_typeCOLONCOLON while at it.1997-07-07 Dave Love <d.love@dl.ac.uk> * intdoc.h: Add various missing pieces; correct GMTIME, LTIME result ordering. * intrin.def, com-rt.def: Add alarm. * com.c (ffecom_expr_intrinsic_): Add case for alarm.Thu Jun 26 04:19:40 1997 Craig Burley <burley@gnu.ai.mit.edu> Fix 970302-3.f: * com.c (ffecom_sym_transform_): For sanity-check compare of gbe size of local variable to g77 expectation, use varasm.c/assemble_variable technique of dividing BITS_PER_UNIT out of gbe info instead of multiplying g77 info up, to avoid crash when size in bytes is very large, and overflows an `int' or similar when multiplied. Fix 970626-2.f: * com.c (ffecom_finish_symbol_transform_): Don't bother transforming a dummy argument, to avoid a crash. * ste.c (ffeste_R1227): Don't return a value if the result decl, or its type, is error_mark_node. Fix 970626-4.f: * lex.c (ffelex_splice_tokens): `-fdollar-ok' is irrelevant to whether a DOLLAR token should be made from an initial character of `$'. Fix 970626-6.f: * stb.c (ffestb_do3_): DO iteration variable is an lhs, not rhs, expression. Fix 970626-7.f and 970626-8.f: * expr.c (ffeexpr_cb_comma_i_1_): Set IMPDO expression to have clean info, because undefined rank, for example, caused crash on mangled source on UltraSPARC but not on Alpha for a series of weird reasons. (ffeexpr_cb_close_paren_): If not CLOSE_PAREN, push opANY expression onto stack instead of attempting to mimic what program might have wanted. (ffeexpr_cb_close_paren_): Don't wrap opPAREN around opIMPDO, just warn that it's gratuitous. * bad.def (FFEBAD_IMPDO_PAREN): New warning. Fix 970626-9.f: * expr.c (ffeexpr_declare_parenthesized_): Must shut down parsing in kindANY case, otherwise the parsing engine might decide there's an ambiguity. (ffeexpr_token_name_rhs_): Eliminate parentypeSUBROUTINE_ case, so we crash right away if it comes through. * st.c, st.h, sta.c, sta.h (ffest_shutdown, ffesta_shutdown): New functions.Tue Jun 24 19:47:29 1997 Craig Burley <burley@gnu.ai.mit.edu> * com.c (ffecom_check_size_overflow_): New function catches some cases of the size of a type getting too large. varasm.c must catch the rest. (ffecom_sym_transform_): Use new function. (ffecom_type_localvar_): Ditto.Mon Jun 23 01:09:28 1997 Craig Burley <burley@gnu.ai.mit.edu> * global.c (ffeglobal_proc_def_arg): Fix comparison of argno to #args. (ffeglobal_proc_ref_arg): Ditto. * lang-options.h, top.c: Rename `-fdebug' to `-fxyzzy', since it's an unsupported internals option and some poor user might guess that it does something. * bad.def: Make a warning for each filewide diagnostic. Put all filewides together. * com.c (ffecom_sym_transform_): Don't substitute known global tree for global entities when `-fno-globals'. * global.c (ffeglobal_new_progunit_): Don't produce fatal diagnostics about globals when `-fno-globals'. Instead, produce equivalent warning when `-Wglobals'. (ffeglobal_proc_ref_arg): Ditto. (ffeglobal_proc_ref_nargs): Ditto. (ffeglobal_ref_progunit_): Ditto. * lang-options.h, top.c, top.h: New `-fno-globals' option.Sat Jun 21 12:32:54 1997 Craig Burley <burley@gnu.ai.mit.edu> * expr.c (ffeexpr_fulfill_call_): Set array variable to avoid warning about uninitialized variable. * Make-lang.in: Get rid of any setting of HOST_* macros, since these will break gcc's build! * makefile: New file to make building derived files easier.Thu Jun 19 18:19:28 1997 Craig Burley <burley@gnu.ai.mit.edu> * g77.c (main): Install Emilio Lopes' patch to support Ratfor, and to fix the printing of the version string to go to stderr, not stdout. * lang-specs.h: Install Emilio Lopes' patch to support Ratfor, and patch the result to support picking up `*f771' from the `specs' file.Thu Jun 12 14:36:25 1997 Craig Burley <burley@gnu.ai.mit.edu> * storag.c (ffestorag_update_init, ffestorag_update_save): Also update parent, in case equivalence processing has already eliminated pointers to it via the local equivalence info.Tue Jun 10 14:08:26 1997 Craig Burley <burley@gnu.ai.mit.edu> * intdoc.c: Add cross-reference to end of description of any generic intrinsic pointing to other intrinsics with the same name. Warn about explicit type declaration for intrinsic that disagrees with invocation: * expr.c (ffeexpr_paren_rhs_let_): Preserve type info for intrinsic functions. (ffeexpr_token_funsubstr_): Ditto. * intrin.c (ffeintrin_fulfill_generic): Warn if type info of fulfilled intrinsic invocation disagrees with explicit type info given symbol. (ffeintrin_fulfill_specific): Ditto. * stc.c (ffestc_R1208_item): Preserve type info for intrinsics. (ffestc_R501_item): Ditto.Mon Jun 9 17:45:44 1997 Craig Burley <burley@gnu.ai.mit.edu> * com.c (ffecom_expr_intrinsic_): Fix several of the libU77/libF77-unix handlers to properly convert their arguments. * com-rt.def (FFECOM_gfrtFSTAT): Append missing "i" to arg string.Fri Jun 6 14:37:30 1997 Craig Burley <burley@gnu.ai.mit.edu> * com.c (ffecom_expr_intrinsic_): Have a case statement for every intrinsic implementation, so missing ones are caught via gcc warnings. Don't call ffeintrin_codegen_imp anymore. * intrin.c (ffeintrin_fulfill_generic): Remove cg_imp stuff from here. (ffeintrin_codegen_imp): Delete this function. * intrin.def, intrin.h: Remove DEFIMQ stuff from here as well.Thu Jun 5 13:03:07 1997 Craig Burley <burley@gnu.ai.mit.edu> * top.c (ffe_decode_option): New -fbadu77-intrinsics-* options. * top.h: Ditto. * intrin.h: New BADU77 family. * intrin.c (ffeintrin_state_family): Ditto. Implement new scheme to track intrinsic names vs. forms: * intrin.c (ffeintrin_fulfill_generic), (ffeintrin_fulfill_specific), (ffeintrin_is_intrinsic), intrin.def: The documented name is now either in the generic info or, if no generic, in the specific info. For a generic, the specific info contains merely the distinguishing form (usually "function" or "subroutine"), used for diagnostics about ambiguous references and in the documentation. * intrin.def: Clean up formatting of DEFNAME block. Convert many libU77 intrinsics into generics that support both subroutine and function forms. Put the function forms of side-effect routines into the new BADU77 family. Make MCLOCK and TIME return INTEGER*4 again, and add INTEGER*8 equivalents called MCLOCK8 and TIME8. Fix up more status return values to be written and insist on them being I1 as well. * com.c (ffecom_expr_intrinsic_): Lots of changes to support new libU77 intrinsic interfaces.Mon Jun 2 00:37:53 1997 Craig Burley <burley@gnu.ai.mit.edu> * com.c (ffecom_init_0): Pointer type is now INTEGER(KIND=7), not INTEGER(KIND=0), since we want to reserve KIND=0 for future use.Thu May 29 14:30:33 1997 Craig Burley <burley@gnu.ai.mit.edu> Fix bugs preventing CTIME(I*4) from working correctly: * com.c (ffecom_char_args_): For FUNCREF case, process args to intrinsic just as they would be in ffecom_expr_intrinsic_. * com-rt.def (FFECOM_gfrtCTIME, FFECOM_gfrtTTYNAM): Fix argument decls to specify `&'.Wed May 28 22:19:49 1997 Craig Burley <burley@gnu.ai.mit.edu> Fix gratuitous warnings exposed by dophot aka 970528-1: * global.c (ffeglobal_proc_def_arg, ffeglobal_proc_ref_arg): Support distinct function/subroutine arguments instead of just procedures. * global.h: Ditto. * expr.c (ffeexpr_fulfill_call_): A SYMTER with kindNONE also is a procedure (either function or subroutine).Mon May 26 20:25:31 1997 Craig Burley <burley@gnu.ai.mit.edu> * bad.def: Have several lexer diagnostics refer to documentation for people who need more info on what Fortran source code is supposed to look like. * expr.c (ffeexpr_reduced_bool1_), bad.def: New diagnostics specific to .NOT. now mention only one operand instead of two. * g77.c: Recognize -fsyntax-only, similar to -c etc. (lookup_option): Fix bug that prevented non-`--' options from being recognized.Sun May 25 04:29:04 1997 Craig Burley <burley@gnu.ai.mit.edu> * intrin.def (FFEINTRIN_impCTIME): Accept `I*' expression for STime instead of requiring `I2'.Tue May 20 16:14:40 1997 Craig Burley <burley@gnu.ai.mit.edu> * symbol.c (ffesymbol_reference): All references to standard intrinsics are considered explicit, so as to avoid generating basically useless warnings. * intrin.c, intrin.h (ffeintrin_is_standard): Returns TRUE if intrinsic is standard.Sun May 18 21:14:59 1997 Craig Burley <burley@gnu.ai.mit.edu> * com-rt.def: Changed all external names of the form `"\([a-z0-9]*\)_' to `"G77_\1_0"' so as to allow any name valid as an intrinsic to be used as such and as a user-defined external procedure name or common block as well.Thu May 8 13:07:10 1997 Craig Burley <burley@gnu.ai.mit.edu> * expr.c (ffeexpr_cb_end_notloc_): For %VAL, %REF, and %DESCR, copy arg info into new node.Mon May 5 14:42:17 1997 Craig Burley <burley@gnu.ai.mit.edu> From Uwe F. Mayer <mayer@math.Vanderbilt.Edu>: * Make-lang.in (g77-cross): Fix typo in g77.c path. From Brian McIlwrath <bkm@star.rl.ac.uk>: * lang-specs.h: Have g77 pick up options from a section labeled `*f771' of the `specs' file.Sat May 3 02:46:08 1997 Craig Burley <burley@gnu.ai.mit.edu> * intrin.def (FFEINTRIN_defSIGNAL): Add optional `Status' argument that com.c already expects (per Dave Love). More changes to support better tracking of (filewide) globals, in particular, the arguments to procedures:
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -