2007-03-26 Stepan Kasal <skasal@redhat.com>
* tools/gnu/classpath/tools/javah/Main.java (cniOrJniSeen): New
field.
(getParser): Use new field.
From-SVN: r123240
* gengtype-parse.c: New file.
* gengtype-yacc.y: Delete.
* gengtype-lex.l: Don't include gengtype-yacc.h.
Define YY_DECL and yyterminate appropriately for recursive
descent parser. yylval is now a string out-parameter to yylex.
(HWS, EOID): New shorthand.
(IWORD): Add a couple more types.
(yylex): Add a setup stanza. Remove the complex rules for
detecting GTY'ed types and typedefs; replace with simple
keyword detectors. Adjust everything for the changed
definition of yylval. Ignore all pp-directives, not just #define.
(yyerror): Delete.
(parse_file): Rename yybegin; do not call yyparse.
(yyend): New.
* gengtype.c (xasprintf): Export again.
(this_file): New. Use everywhere __FILE__ was being used.
(get_lang_bitmap): Special case types defined in gengtype.c.
(do_typedef, new_structure): Suppress definition of certain types.
(new_structure): Improve diagnostics of duplicate definitions.
Make sure location_s is associated with input.h.
(nreverse_pairs, define_location_structures): New functions.
(main): Improve tagging of kludge types. Remove old kludges
for input.h types; use define_location_structures.
* gengtype.h: Update prototypes. Define token codes here.
* Makefile.in: Remove all references to gengtype-yacc.
Add rules for gengtype-parse.o. Adjust rules for gengtype-lex.o
and gengtype.
* bitmap.h (struct bitmap_head_def): Coalesce definitions,
add GTY((skip)) to the field that's only conditionally there.
* doc/install.texi: Document that Bison is no longer required
unless building treelang.
From-SVN: r123235
* gengtype.c: Don't include gtyp-gen.h.
(srcdir): Declare here.
(base_files, lang_dir_names): Allocate dynamically.
(gt_files, num_gt_files, num_lang_dirs): New globals.
(measure_input_list, read_input_line, read_input_list)
(set_lang_bitmap): New functions.
(get_base_file_bitmap): Rename get_lang_bitmap and drastically
simplify, relying on read_input_list to set up the bitmaps.
(main): Arguments are no longer unused. Check for correct number
of command line arguments, set srcdir and srcdir_len, then call
read_input_list, before doing anything else. No need to worry
about duplicates in main loop.
* configure.ac: Simplify the calculation of all_gtfiles.
Put language tags in there. Don't set or substitute
all_gtfiles_files_langs or all_gtfiles_files_frags.
* Makefile.in: Revamp the way gengtype is invoked, now that it
takes a file on its command line with a much simpler format.
Remove or replace with gtyp-input.list all references to gtyp-gen.h.
(GTFILES): Remove duplicates and C source files.
* c-config-lang.in, cp/config-lang.in, objc/config-lang.in
* objcp/config-lang.in: Add c-pragma.h to gtfiles.
* configure: Regenerate.
From-SVN: r123234
* gengtype.h: Remove all type definitions to gengtype.c; leave
only definitions of options_p, type_p, and pair_p as opaque
pointers. Update prototypes.
* gengtype.c: Many type definitions moved here from gengtype.h.
Consolidate type definitions at the top of the file.
(xvasprintf): Delete.
(xasprintf): Make static.
(create_nested_pointer_option): Add 'next' parameter.
(create_field_all, create_field_at): New functions.
(create_field): Now a thin wrapper around create_field_all.
(create_optional_field): Rename create_optional_field_ and add
line argument. Original name is now a macro which supplies
__LINE__.
(oprintf): Use vsnprintf directly.
(close_output_files): Use fatal rather than perror/exit.
(note_def_vec, note_def_vec_alloc): Use create_field_at.
(main): Set progname. Don't use exit.
* gengtype-yacc.y (struct_fields): Use create_field_at.
(option, optionseqopt): Delete.
(optionseq): Consolidate productions from option here so we
can use the first argument to create_option.
From-SVN: r123233
* gengtype-lex.l: Distinguish unions from structures in the
token type. Don't call find_structure; return the tag as a string.
* gengtype-yacc.y: Add new token types ENT_TYPEDEF_UNION and ENT_UNION.
Type of these, ENT_TYPEDEF_STRUCT, and ENT_STRUCT is string.
Reorganize typedef_struct production accordingly.
Use create_nested_ptr_option.
* gengtype.c (create_nested_ptr_option): New function.
* gengtype.h: Declare it.
From-SVN: r123232
* gengtype.h (struct type): Replace 'sc' with boolean, scalar_is_char.
(string_type): Don't declare.
(do_scalar_typedef): Declare.
(create_scalar_type): Update prototype.
* gengtype.c (string_type): Make static.
(scalar_nonchar, scalar_char): New.
(do_scalar_typedef): Export. Always use scalar_nonchar for the type.
(resolve_typedef): Use scalar_nonchar for error recovery.
(create_scalar_type): Remove name_len field. Return scalar_char
or scalar_nonchar as appropriate.
(adjust_field_type): Look at scalar_is_char boolean to decide whether
to use string_type.
(throughout): Use scalar_nonchar instead of calling create_scalar_type,
whenever possible.
(main): Initialize scalar_char and scalar_nonchar before calling
gen_rtx_next.
* gengtype-lex.l: Adjust for removal of second argument to
create_scalar_type. Use yylval.s instead of yylval.t when
returning SCALAR.
* gengtype-yacc.y: Type of SCALAR is string. Call
create_scalar_type from type:SCALAR rule. Adjust for removal of
second argument to create_scalar_type.
From-SVN: r123231
* vec.h: Remove all #if IN_GENGTYPE blocks.
Add comment saying that changes may require adjustments to gengtype.
* gengtype.c: Don't include coretypes.h or tm.h.
Add comment to inclusion of errors.h.
(note_def_vec, note_def_vec_alloc): New functions.
* gengtype.h: Declare new functions.
* gengtype-lex.l: Don't include coretypes.h.
(YY_INPUT, macro_input, push_macro_expansion, mangle_macro_name):
Delete.
(update_lineno): Remove unnecessary prototype.
(DEF_VEC_* rules): Simplify using note_def_vec / note_def_vec_alloc.
(VEC rule): Just return VEC_TOKEN.
* gengtype-yacc.y (VEC_TOKEN): New token type.
(type): Add a production for VEC(a,b).
* Makefile.in: Update dependencies.
From-SVN: r123229
* ifcvt.c (noce_try_store_flag_constants): Don't check
no_new_pseudos here.
(noce_try_store_flag_constants): Don't check no_new_pseudos.
(noce_try_addcc, noce_try_store_flag_mask, noce_try_cmove_arith,
noce_try_cmove_arith, noce_try_minmax, noce_try_abs,
noce_try_sign_mask): Likewise.
(if_convert): Check no_new_pseudos here.
(cond_exec_process_if_block, noce_process_if_block, find_if_block):
Remove prototypes.
(struct noce_if_info): Add then_bb, else_bb, join_bb members.
(noce_get_condition): Handle new then_else_reversed argument.
(noce_init_if_info): Remove, fold into noce_find_if_block.
(noce_process_if_block): Take a struct noce_if_info as the
argument. Don't set up one based on ce_if_info. Update pointer
references accordingly.
(cond_move_process_if_block): Likewise.
(process_if_block): Removed.
(find_if_block): Removed. Move functionality two new functions,
noce_find_if_block and cond_exec_find_if_block.
(noce_find_if_block): New function. Be aware of IF-THEN-JOIN
blocks and the symmetric IF-ELSE-JOIN case.
(cond_exec_find_if_block): Also new function mostly based on old
find_if_block and process_if_block.
(find_if_header): Replace find_if_block call with separately
guarded calls to noce_find_if_block and cond_exec_find_if_block.
(find_cond_trap): Update noce_get_condition call.
(dead_or_predicable): Likewise.
From-SVN: r123223
2007-03-26 H.J. Lu <hongjiu.lu@intel.com>
* acx.m4 (ACX_BUGURL): Set BUGURL first. Quote $BUGURL first
when setting REPORT_BUGS_TEXI.
From-SVN: r123218
2007-03-25 Jerry DeLisle <jvdelisle@gcc.gnu.org>
PR libgfortran/31199
*io/io.h: Add saved_pos to gfc_unit structure.
*io/open.c (new_unit): Initialize saved_pos.
*io/transfer.c (data_transfer_init): Set max_pos to value in saved_pos.
(next_record_w): Fix whitespace.
(finalze_transfer): Calculate max_pos for ADVANCE="no" and save it for
later use. If not ADVANCE="no" set saved_pos to zero.
From-SVN: r123205
* config/rs6000/rs6000.c (rs6000_emit_prologue): Always clobber LR
in SImode for save_world.
* config/rs6000/altivec.md (save_world, restore_world): Convert to
LR hard reg.
From-SVN: r123198
PR fortran/30877
* fortran/interface.c (check_operator_interface): Implement
the standard checks on user operators extending intrinsic operators.
* fortran/resolve.c (resolve_operator): If the ranks of operators
don't match, don't error out but try the user-defined ones first.
* gfortran.dg/operator_1.f90: New test.
* gfortran.dg/operator_2.f90: New test.
From-SVN: r123196
2007-03-24 Paul Thomas <pault@gcc.gnu.org>
PR fortran/31215
* trans-expr.c (gfc_apply_interface_mapping_to_expr): Return
int result that is non-zero if the expression is the function
result. Only the characteristics of the result expression
can be used in a procedure interface, so simplify LEN in situ
using its character length.
PR fortran/31219
PR fortran/31200
* trans-expr.c (gfc_conv_function_call): Do not use
gfc_conv_expr_reference for actual pointer function with formal
target because a temporary is created that does not transfer
the reference correctly. Do not indirect formal pointer
functions since it is the function reference that is needed.
2007-03-24 Paul Thomas <pault@gcc.gnu.org>
PR fortran/31219
* gfortran.dg/pointer_function_actual_1.f90: New test.
PR fortran/31200
* gfortran.dg/pointer_function_actual_2.f90: New test.
PR fortran/31215
* gfortran.dg/result_in_spec_1.f90: New test.
From-SVN: r123184
2007-03-24 Paul Thomas <pault@gcc.gnu.org>
PR fortran/31215
* trans-expr.c (gfc_apply_interface_mapping_to_expr): Return
int result that is non-zero if the expression is the function
result. Only the characteristics of the result expression
can be used in a procedure interface, so simplify LEN in situ
using its character length.
PR fortran/31219
PR fortran/31200
* trans-expr.c (gfc_conv_function_call): Do not use
gfc_conv_expr_reference for actual pointer function with formal
target because a temporary is created that does not transfer
the reference correctly. Do not indirect formal pointer
functions since it is the function reference that is needed.
2007-03-24 Paul Thomas <pault@gcc.gnu.org>
PR fortran/31219
* gfortran.dg/pointer_function_actual_1.f90: New test.
PR fortran/31200
* gfortran.dg/pointer_function_actual_2.f90: New test.
PR fortran/31215
* gfortran.dg/result_in_spec_1.f90: New test.
From-SVN: r123183