Commit Graph

1174 Commits

Author SHA1 Message Date
Paul Brook
6956a6f38a * intrinsic.c (add_sym_2s): Use correct function types.
From-SVN: r83071
2004-06-13 23:23:24 +00:00
Paul Brook
b3b65c9af5 Fix changelog typo.
From-SVN: r83042
2004-06-12 19:51:13 +00:00
Tobias Schlüter
fd52837724 Make-lang.in (F95_OBJS, [...]): Alpabetize.
* Make-lang.in (F95_OBJS, F95_PARSER_OBJS): Alpabetize.  Move data.c
	* data.c (gfc_get_section_index):  Remove dependency on trans.h.

From-SVN: r83041
2004-06-12 19:48:41 +00:00
Steven G. Kargl
2bd7494908 check.c (gfc_check_second_sub, [...]): New functions.
* check.c (gfc_check_second_sub, gfc_check_irand, gfc_check_rand
	gfc_check_srand, gfc_check_etime, gfc_check_etime_sub): New functions.
	* gfortran.h (gfc_generic_isym_id): New symbols GFC_ISYM_ETIME,
	GFC_ISYM_IRAND, GFC_ISYM_RAND, GFC_ISYM_SECOND.
	* trans-intrinsic.c:  Use symbols.
	* intrinsic.c (add_sym_2s): New function.
	* intrinsic.c: Add etime, dtime, irand, rand, second, srand.
	* intrinsic.h: Function prototypes.
	* iresolve.c (gfc_resolve_etime_sub, gfc_resolve_second_sub
	gfc_resolve_srand):  New functions.
libgfortran
	* Makefile.am: Add rand.c and etime.c
	* Makefile.in: Regenerated.
	* aclocal.in: Regenerated.
	* cpu_time.c (second_sub, second): New functions.
	* rand.c (irand, rand, srand): New file.
	* etime.c (etime_sub, etime): New file.

From-SVN: r83034
2004-06-12 17:34:47 +00:00
Tobias Schlüter
c52eae8de0 re PR fortran/14957 (testsuite issues)
fortran/
PR fortran/14957
* decl.c (gfc_match_end): Require END {SUBROUTINE|FUNCTION} for
contained procedure.

testsuite/
PR fortran/14957
* gfortran.fortran-torture/execute/stack_varsize.f90: Correct
        syntax errors in end statements of contained subroutines.

From-SVN: r83031
2004-06-12 17:02:01 +02:00
Tobias Schlüter
662ef0f5c6 re PR fortran/12841 (passing null to a subroutine)
fortran/
PR fortran/12841
* interface.c (compare_parameter, compare_actual_formal): Don't
check types and array shapes for NULL()
* trans-expr.c (conv_function_call): No double indirection for
NULL()
( I had accidentally committed the interface.c part before)

testuite/
PR fortran/12841
* gfortran.fortran-torture/execute/null_arg.f90: New test.

From-SVN: r83028
2004-06-12 16:06:19 +02:00
Toon Moene
293155b099 trans-expr.c (gfc_conv_cst_int_power): Compute x**(-n) by converting it to (1/x)**n instead of 1/x**n.
2004-06-09  Toon Moene  <toon@moene.indiv.nluug.nl>

	* trans-expr.c (gfc_conv_cst_int_power): Compute
	x**(-n) by converting it to (1/x)**n instead of
	1/x**n.

From-SVN: r82850
2004-06-09 19:57:24 +00:00
Tobias Schlüter
62f1d4705d re PR fortran/13372 (ICE in trans-types.c (gfc_typenode_for_spec), see #13201)
fortran/
PR fortran/13372
* module.c (write_symbol, write_symtree): Don't write symbols
wrongly added to namespace.
* trans-decl.c (gfc_create_module_variable): Don't create a
backend decl for a symbol incorrectly added to namespace.

testsuite/
PR fortran/13372
* gfortran.fortran-torture/compile/named_args_2.f90: New test.

From-SVN: r82834
2004-06-09 14:55:50 +02:00
Tobias Schlüter
a4ac5dd3ef re PR fortran/13201 (PARAMETER variables of nonconstant shape are accepted)
PR fortran/13201
* resolve.c (resolve_symbol): Verify that parameter array has an
explicit shape. Fix typos and coding style issues in surrounding
lines.

From-SVN: r82830
2004-06-09 14:35:39 +02:00
Tobias Schlüter
e0f2a7c6f2 re PR fortran/15478 (gfortran manual problems)
PR fortran/15478
* gfortran.texi: The documentation doesn't contain infomration on
how to report bugs, and shouldn't, so remove the line which
says it does.

From-SVN: r82650
2004-06-05 16:41:42 +02:00
Tobias Schlüter
bda4d0639b re PR fortran/15478 (gfortran manual problems)
PR fortran/15478
* doc/install.texi: Document GMP as prerequisite. Document
--with-gmp and --with-gmp-dir configure options.
* fortran/gfortran.texi: Remove section 'Compiling and testing',
remove TOC reference to it.

From-SVN: r82648
2004-06-05 16:34:56 +02:00
Tobias Schlüter
f9fed73b66 intrinsic.c (sort_actual): Keep track of type of missing arguments.
* intrinsic.c (sort_actual): Keep track of type of missing
	arguments. (Missing from previous commit.)

From-SVN: r82645
2004-06-05 13:34:52 +02:00
Tobias Schlüter
1600fe22b9 gfortran.h (gfc_actual_arglist): New field missing_arg_type.
fortran/
* gfortran.h (gfc_actual_arglist): New field missing_arg_type.
* interface.c (compare_actual_formal): Keep type of omitted
optional arguments.
* trans-expr.c (gfc_conv_function_call): Add string length
argument for omitted string argument.

testsuite/
* gfortran.fortran-torture/execute/optstring_1.f90: New testcase.

From-SVN: r82608
2004-06-04 00:35:41 +02:00
Tobias Schlüter
dfc46c1fde One more comment update
From-SVN: r82605
2004-06-04 00:01:10 +02:00
Paul Brook
7c87eac60d trans.c (gfc_finish_block, [...]): Build statement lists instead of compound expr chains.
* trans.c (gfc_finish_block, gfc_add_expr_to_block): Build statement
	lists instead of compound expr chains.
	(gfc_trans_code): Annotate statement lists.

From-SVN: r82604
2004-06-03 21:56:54 +00:00
Tobias Schlüter
1341376000 * trans-array.c: Fix spelling in comments.
From-SVN: r82603
2004-06-03 22:25:29 +02:00
Tobias Schlüter
2fa548415a re PR fortran/15557 (Not Implemented: Substring reference in DATA statement)
fortran/
PR fortran/15557
* data.c (assign_substring_data_value): New function.
(gfc_assign_data_value): Call the new function if we're dealing
with a substring LHS.

testsuite/
PR fortran/15557
* gfortran.fortran-torture/execute/data_3.f90: New testcase.

From-SVN: r82570
2004-06-02 13:38:24 +02:00
Tobias Schlüter
ea0ece0949 re PR fortran/15477 (gfortran should not have own version number)
PR fortran/15477
* gfortran.h (GFC_VERSION): Remove.
* gfortran.texi (version-gfortran): Remove, replace by version-GCC
where used.

From-SVN: r82544
2004-06-01 14:12:58 +02:00
Tobias Schlüter
c3e8c6b838 * trans-types.c: Fix spelling & layout in comments.
From-SVN: r82492
2004-05-31 21:31:12 +02:00
Tobias Schlüter
9471628798 re PR fortran/14067 (no warning when character data statement overflows declared size)
PR fortran/14067
* trans-const.c (gfc_conv_string_init): Allow variable string
length lower than initialization string length.

From-SVN: r82457
2004-05-30 18:33:28 +02:00
Paul Brook
7b5b57b7dc re PR fortran/15620 (Statement functions and optimization cause IC)
PR fortran/15620
	* trans-decl.c (gfc_shadow_sym, gfc_restore_sym): New functions.
	* trans-expr.c (gfc_trans_string_copy): New function.
	(gfc_conv_statement_function): Use them.  Create temp vars.  Enforce
	character lengths.
	(gfc_conv_string_parameter): Use gfc_trans_string_copy.
	* trans-stmt.c (gfc_trans_forall_1): Use gfc_{shadow,restore}_sym.
	* trans.h (struct gfc_saved_var): Define.
	(gfc_shadow_sym, gfc_restore_sym): Add prototypes.
testsuite/
	* gfortran.fortran-torture/execute/st_function_1.f90: New test.
	* gfortran.fortran-torture/execute/st_function_2.f90: New test.

From-SVN: r82452
2004-05-30 14:37:25 +00:00
Steven G. Kargl
5f251c2603 iresolve.c (gfc_resolve_random_number): Clean up conditional.
* iresolve.c (gfc_resolve_random_number): Clean up conditional.
libgfortran/
	* libgfortran.h (random_seed): Update prototype.
	* intrinsics/random.c: Disable old implementation and add new one.
testsuite/
	* gfortran.fortran-torture/execute/random_1.f90: New test.

From-SVN: r82443
2004-05-30 10:49:50 +00:00
Steven G. Kargl
e73c80ae86 * simplify.c (gfc_simplify_log): Remove useless line of code.
From-SVN: r82418
2004-05-29 11:33:30 +00:00
Paul Brook
f659a11ff2 Typo in last patch.
From-SVN: r82412
2004-05-29 01:24:15 +00:00
Paul Brook
353c3b7e16 trans-common.c (find_equivalence): Find multiple rules.
* trans-common.c (find_equivalence): Find multiple rules.
testsuite/
	* gfortran.fortran-torture/execute/equiv_1.f90: New test.

From-SVN: r82411
2004-05-29 01:21:51 +00:00
Tobias Schlüter
63645982e7 gfortran.h (gfc_current_locus, [...]): Remove.
* gfortran.h (gfc_current_locus, gfc_set_locus): Remove.
(gfc_current_locus): Declare new global variable.
* scanner.c (gfc_current_locus, gfc_set_locus): Remove.
(gfc_current_locus1): Rename ...
(gfc_current_locus): ... to this.
(gfc_at_eof, gfc_at_bol, gfc_at_eol, gfc_advance_line, next_char,
skip_fixed_comments, skip_free_comments, gfc_next_char_literal,
gfc_peek_char, gfc_gobble_whitespace, gfc_new_file): Use
gfc_current_locus instead of gfc_current_locus1, gfc_set_locus()
and gfc_current_locus(), respectively.
* array.c (match_subscript, gfc_match_array_ref, match_array_list,
match_array_cons_element, gfc_match_array_constructor):
Read/modify gfc_current_locus instead of calling gfc_set_locus()
and gfc_current_locus().
* decl.c (gfc_match_null, variable_decl, gfc_match_kind_spec,
match_attr_spec, gfc_match_function_decl, gfc_match_end,
attr_decl1, gfc_match_save): Likewise.
* error.c (error_print, gfc_internal_error): Likewise.
* expr.c (gfc_int_expr, gfc_default_logical_kind): Likewise.
* interface.c (gfc_add_interface): Likewise.
* io.c (gfc_match_format, match_dt_format, match_dt_element,
match_io_iterator, match_io): Likewise.
* match.c (gfc_match_space, gfc_match_eos,
gfc_match_small_literal_int, gfc_match_st_label,
gfc_match_strings, gfc_match_name, gfc_match_iterator,
gfc_match_char, gfc_match, gfc_match_assignment,
gfc_match_pointer_assignment, gfc_match_if, gfc_match_do,
gfc_match_nullify, gfc_match_call, match_implicit_range,
gfc_match_implicit, gfc_match_data, match_case_selector,
gfc_match_case, match_forall_iterator): Likewise.
* matchexp.c (gfc_match_defined_op_name, next_operator,
match_level_1, match_mult_operand, match_ext_mult_operand,
match_add_operand, match_ext_add_operand, match_level_2,
match_level_3, match_level_4, match_and_operand, match_or_operand,
match_equiv_operand, match_level_5, gfc_match_expr): Likewise.
* module.c (gfc_match_use, mio_array_ref, mio_expr): Likewise.
* parse.c (match_word, decode_statement, next_free, next_fixed,
add_statement, verify_st_order, parse_if_block, gfc_parse_file):
Likewise.
* primary.c (match_digits, match_integer_constant,
match_boz_constant, match_real_constant, match_substring,
next_string_char, match_charkind_name, match_string_constant,
match_logical_constant, match_const_complex_part,
match_complex_constant, match_actual_arg, match_keyword_arg,
gfc_match_actual_arglist, gfc_match_structure_constructor,
gfc_match_rvalue, gfc_match_variable): Likewise.
* st.c (gfc_get_code): Likewise.
* symbol.c (check_conflict, check_used, check_done,
duplicate_attr, add_flavor, gfc_add_procedure, gfc_add_intent,
gfc_add_access, gfc_add_explicit_interface, gfc_add_type,
gfc_add_component, gfc_reference_st_label, gfc_new_symbol): Likewise.

From-SVN: r82320
2004-05-27 14:35:12 +02:00
Roger Sayle
4eeaf81e5b io.c (format_asterisk): Silence compiler warnings by correcting the number of elements of a "locus"...
* io.c (format_asterisk): Silence compiler warnings by correcting
	the number of elements of a "locus" initializer.

From-SVN: r82301
2004-05-26 23:49:00 +00:00
Roger Sayle
a2f2958795 re PR fortran/13912 (Does not accept consecutive arithmetic operators (*-))
PR fortran/13912
	* matchexp.c: Allow unary operators after arithmetic operators
	as a GNU extension.
	(match_ext_mult_operand, match_ext_add_operand): New functions.
	(match_mult_operand): Tweak to call match_ext_mult_operand.
	(match_add_operand): Tweak to call match_ext_mult_operand.
	(match_level_2): Rearrange to call match_ext_add_operand.

From-SVN: r82277
2004-05-26 02:35:29 +00:00
Paul Brook
45aae8f223 expr.c (check_inquiry): Remove bogus tests.
* expr.c (check_inquiry): Remove bogus tests.
testsuite/
	* gfortran.fortran-torture/compile/inquiry_1.f90: New test.

From-SVN: r82177
2004-05-23 23:52:18 +00:00
Paul Brook
40e929f398 re PR fortran/13773 (Incorrect diagnosis of restricted function)
PR fortran/13773
	* expr.c (restricted_args): Remove redundant checks/argument.
	(external_spec_function): Update to match.
	(restricted_intrinsic): Rewrite.

From-SVN: r82166
2004-05-23 16:07:42 +00:00
Paul Brook
5291e69ade gfortran.h (struct gfc_symbol): Add equiv_built.
* gfortran.h (struct gfc_symbol): Add equiv_built.
	* trans-common.c: Change int to HOST_WIDE_INT.  Capitalize error
	messages.
	(current_length): Remove.
	(add_segments): New function.
	(build_equiv_decl): Create initialized common blocks.
	(build_common_decl): Always add decl to bindings.
	(create_common): Create initializers.
	(find_segment_info): Reformat to match coding conventions.
	(new_condition): Use add_segments.
	(add_condition, find_equivalence, add_equivalences): Move iteration
	inside functions.  Only process each segment once.
	(new_segment, finish_equivalences, translate_common): Simplify.
testsuite/
	* gfortran.fortran-torture/execute/common_init_1.f90: New test.
	* gfortran.fortran-torture/execute/equiv_init.f90: New test.

Co-Authored-By: Victor Leikehman <lei@haifasphere.co.il>

From-SVN: r82165
2004-05-23 15:14:36 +00:00
Steven G. Kargl
95d3f56711 * check.c (gfc_check_random_seed): Issue for too many arguments.
From-SVN: r82162
2004-05-23 11:06:09 +00:00
Paul Brook
c1c52409c7 * intrinsic.c (add_subroutines): Use add_sym_3s for random_seed.
From-SVN: r82139
2004-05-22 17:28:48 +00:00
Paul Brook
1854117e11 dump-parse-tree.c (gfc_show_equiv): New function.
* dump-parse-tree.c (gfc_show_equiv): New function.
	(gfc_show_namespace): Use it.

From-SVN: r82136
2004-05-22 15:52:42 +00:00
Victor Leikehman
b672076889 re PR fortran/13249 (Error when using COMMON)
PR fortran/13249
	* symbol.c (gfc_add_common): Disable checks to work around other more
	fundamental inadequacies.

From-SVN: r82134
2004-05-22 14:51:16 +00:00
Tobias Schlüter
b7e6a6b3f5 trans-decl.c (gfc_get_extern_function_decl): Set DECL_IS_PURE only for functions.
* trans-decl.c (gfc_get_extern_function_decl): Set DECL_IS_PURE
	only for functions.
	(gfc_build_function_decl): Likewise.

From-SVN: r82132
2004-05-22 13:31:07 +00:00
Steven G. Kargl
21fdfcc12c check.c (gfc_check_system_clock): New function.
* check.c (gfc_check_system_clock): New function.
	* intrinsic.c (add_sym_3s): New function.
	(add_subroutines): Use it.
	* intrinsic.h (gfc_check_system_clock, gfc_resolve_system_clock):
	Add prototypes.
	* iresolve.c (gfc_resolve_system_clock): New function.
libgfortran/
	* intrinsics/system_clock: New file.
	* Makefile.am: Add intrinsics/system_clock.c.
	* Makefile.in: Regenerate.

From-SVN: r82131
2004-05-22 12:47:42 +00:00
Steven G. Kargl
2d8b59dfd5 invoke.texi: Document -Wunderflow and spell check.
* invoke.texi: Document -Wunderflow and spell check.
	* lang.opt: Add Wunderflow.
	* gfortran.h (gfc_option_t): Add warn_underflow option.
	* options.c (gfc_init_options, set_Wall): Use it.
	* primary.c (match_real_constant): Explicitly handle UNDERFLOW.
	* arith.c (gfc_arith_uminus, gfc_arith_plus, gfc_arith_minus,
	gfc_arith_times, gfc_arith_divide, gfc_arith_power, gfc_real2real,
	gfc_real2complex, gfc_complex2real, gfc_complex2complex): Ditto.
	* arith.c (common_logarithm): Fix typo in comment.

From-SVN: r82130
2004-05-22 11:03:17 +00:00
Roger Sayle
11670eebf3 io.c (check_format): As a GNU extension...
* io.c (check_format): As a GNU extension, allow the comma after a
	string literal to be optional in a format.  Use gfc_notify_std to
	issue an error/warning as appropriate.

	* io/format.c (parse_format_list): Allow the comma after a string
	literal to be optional.

From-SVN: r82109
2004-05-21 21:37:25 +00:00
Roger Sayle
e433aaee67 io.c (check_format): Use gfc_notify_std to determine whether to issue an error/warning for omitting...
* io.c (check_format): Use gfc_notify_std to determine whether to
	issue an error/warning for omitting the digits from the X format.

From-SVN: r82106
2004-05-21 19:55:36 +00:00
Roger Sayle
8be123d4a9 io.c (format_item): Allow the number before the X format to be optional when not -pedantic.
* io.c (format_item): Allow the number before the X format to
	be optional when not -pedantic.

From-SVN: r82067
2004-05-20 18:56:33 +00:00
Feng Wang
59fa6e39c6 Credit Feng Wang <fengwang@nudt.edu.cn> in ChangeLog.
From-SVN: r82023
2004-05-19 10:41:38 +00:00
Feng Wang
5b200ac2c7 f95-lang.c (gfc_init_builtin_functions): Use vold_list_node.
* f95-lang.c (gfc_init_builtin_functions): Use vold_list_node.
	Create decls for __builtin_pow{,f}.
	* gfortran.h (PREFIX_LEN): Define.
	* trans-decl.c (gfor_fndecl_math_powi): Add.
	(gfor_fndecl_math_powf, gfor_fndecl_math_pow): Remove.
	(gfc_build_intrinsic_function_decls): Create decls for powi.
	* trans-expr.c (powi_table): Add.
	(gfc_conv_integer_power): Remove.
	(gfc_conv_powi): New function.
	(gfc_conv_cst_int_power): New function.
	(gfc_conv_power_op): Use new powi routines.
	* trans.h (struct gfc_powdecl_list): Add.
	(gfor_fndecl_math_powi): Add.
	(gfor_fndecl_math_powf, gfor_fndecl_math_pow): Remove.
testsuite/
	* gfortran.fortran-torture/execute/power.f90: Test constant integers.
libgfortran/
	* Makefile.am (i_pow_c): Set it. Add build rule.
	(gfor_built_src): Use it.
	(m4_files): add m4/pow.m4.
	* Makefile.in: Regenerate.
	* m4/pow.m4: New file.
	* generated/pow_*.c: Regenerate.

From-SVN: r82014
2004-05-19 00:34:59 +00:00
Tobias Schlüter
472ca416af * trans.c, trans-decl.c: Fix comment typos.
From-SVN: r82008
2004-05-19 01:37:47 +02:00
Tobias Schlüter
e584e50152 * trans-const.c (gfc_conv_mpf_to_tree): Fix typo.
From-SVN: r81997
2004-05-18 18:48:09 +02:00
Steve Kargl
e332b68d76 arith.c (gfc_int2complex): Fix incorrect range checking.
2004-05-17  Steve Kargl  <kargls@comcast.net>

* arith.c (gfc_int2complex): Fix incorrect range checking.

From-SVN: r81985
2004-05-18 13:09:29 +02:00
Paul Brook
54b4ba60f2 re PR fortran/13930 (derived type with intent(in) attribute not accepted)
PR fortran/13930
	* decl.c (add_init_expr_to_sym): Remove incorrect check.
	(default_initializer): Move to expr.c.
	(variable_decl): Don't assign default initializer to variables.
	* expr.c (gfc_default_initializer): Move to here.
	* gfortran.h (gfc_default_initializer): Add prototype.
	* resolve.c (resolve_symbol): Check for illegal initializers.
	Assign default initializer.
testsuite/
	* gfortran.fortran-torture/execute/der_init_4.f90: New test.

From-SVN: r81966
2004-05-18 00:48:05 +00:00
Steve Kargl
f12f786b86 arith.c (gfc_arith_power): Complex number raised to 0 power is 1.
2004-05-17  Steve Kargl  <kargls@comcast.net>

* arith.c (gfc_arith_power): Complex number raised to 0 power is 1.

From-SVN: r81959
2004-05-18 01:54:09 +02:00
Steve Kargl
e876acbd25 arith.c (gfc_real2complex): Range checking wrong part of complex number.
2004-05-17  Steve Kargl  <kargls@comcast.net>

* arith.c (gfc_real2complex): Range checking wrong part of complex
        number.

From-SVN: r81957
2004-05-18 01:19:47 +02:00
Paul Brook
629ceb937a * options.c (gfc_handle_module_path_options): Fix buffer overrun.
From-SVN: r81925
2004-05-16 21:10:24 +00:00
Paul Brook
67a459f37c * arith.c (gfc_range_check): Fix logic error.
From-SVN: r81918
2004-05-16 18:01:38 +00:00
Steve Kargl
1ab106cdc4 * arith.c: Fix comment typos.
From-SVN: r81912
2004-05-16 11:26:25 +00:00
Tobias Schlüter
c8e20bd093 re PR fortran/13742 (Not Implemented: initial values for COMMON or EQUIVALENCE)
PR fortran/13742
* decl.c (add_init_expr_to_sym): Verify that COMMON variable is
not initialized in a disallowed fashion.
* match.c (gfc_match_common): Likewise.
(var_element): Verify that variable is not in the blank COMMON,
if it is in a common.

From-SVN: r81899
2004-05-15 22:29:06 +02:00
Joseph Myers
fc89798458 Make-lang.in (f95.generated-manpages): Remove.
* Make-lang.in (f95.generated-manpages): Remove.
	(f95.srcextra): New.
	(f95.info, fortran/gfortran.info, fortran/gfortran.dvi,
	f95.maintainer-clean): Generate info and dvi files in objdir/doc.
	(f95.dvi): Remove.
	(dvi): New.
	(f95.install-info): Remove.
	(install-info): New.

From-SVN: r81896
2004-05-15 20:02:24 +01:00
Victor Leikehman
1de8a83646 * decl.c (add_init_expr_to_sym): Check for variable size arrays.
From-SVN: r81894
2004-05-15 18:20:09 +00:00
Tobias Schlüter
feb357a336 re PR fortran/13826 (Derived types in DATA statements not PARAMETERs)
testsuite:
PR fortran/13826
PR fortran/13940
* gfortran.fortran-torture/compile/data_1.f90: New test.
(add second test)

fortran:
* primary.c (match_boz_constant): Use gfc_notify_std() for
issuing a warning or an error.

From-SVN: r81892
2004-05-15 20:10:06 +02:00
Tobias Schlüter
d663434b6c re PR fortran/13826 (Derived types in DATA statements not PARAMETERs)
fortran:
PR fortran/13826
* primary.c (match_structure_constructor): Rename ...
(gfc_match_structure_constructor): ... to this. Make non-static.
(gfc_match_rvalue): Call renamed function.
* match.h (gfc_match_structure_constructor): Declare.
* match.c (gfc_match_data_constant): Handle structure
constructor.

testsuite:
PR fortran/13826
* gfortran.fortran-torture/compile/data_1.f90: New test.

From-SVN: r81891
2004-05-15 20:02:20 +02:00
Tobias Schlüter
d4fa05b90d re PR fortran/13702 (When preprocessing Fortran files (.F, .F90 and .F95) cpp should emit line numbers.)
PR fortran/13702
(Port from g95)
* gfortran.h (gfc_linebuf): New typedef.
(linebuf): Remove.
(gfc_file): Revamped, use new gfc_linebuf.
(locus): Revamped, use new types.
(gfc_current_file): Remove.
(gfc_current_form, gfc_source_file): New global variables.
* match.c (gfc_match_space, gfc_match_strings): Use
gfc_current_form to find source form.
* module.c (gfc_dump_module): Use gfc_source_file when printing
module header.
* error.c (show_locus, show_loci) Use new data structures to print
locus.
* scanner.c (first_file, first_duplicated_file, gfc_current_file):
Remove.
(file_head, current_file, gfc_current_form, line_head, line_tail,
gfc_current_locus1, gfc_source_file): New global variables.
(gfc_scanner_init1): Set new global variables.
(gfc_scanner_done1): Free new data structures.
(gfc_current_locus): Return pointer to gfc_current_locus1.
(gfc_set_locus): Set gfc_current_locus1.
(gfc_at_eof): Set new variables.
(gfc_at_bol, gfc_at_eol, gfc_advance_line, gfc_next_char): Adapt
to new locus structure.
(gfc_check_include): Remove.
(skip_free_comments, skip_fixed_comments): Use gfc_current_locus1.
(gfc_skip_comments): Use gfc_current_form, find locus with
gfc_current_locus1.
(gfc_next_char): Use gfc_current_form.
(gfc_peek_char, gfc_gobble_whitespace): Use gfc_current_locus1.
(load_line): Use gfc_current_form. Recognize ^Z as EOF. Fix
comment formatting.
(get_file): New function.
(preprocessor_line, include_line): New functions.
(load_file): Move down, rewrite to match new data structures.
(gfc_new_file): Rewrite to match new data structures.
* parse.c (next_statement): Remove code which is now useless. Use
gfc_source_form and gfc_source_file where appropriate.
* trans-decl.c (gfc_get_label_decl): adapt to new data structures
when determining locus of frontend code.
* trans-io.c (set_error_locus): Same.
* trans.c (gfc_get_backend_locus, gfc_set_backend_locus): Likewise.
* lang-specs.h (@f77-cpp-input, @f95-cpp-input): Remove '-P' from
preprocessor flags.
(all): Add missing initializers.

From-SVN: r81888
2004-05-15 19:31:32 +02:00
Tobias Schlüter
39ae2b013a Make-lang.in (trans-common.o): Remove redundant dependency.
* Make-lang.in (trans-common.o): Remove redundant dependency.
(data.c): Replace object file name ...
(data.o): ... by the correct one.

From-SVN: r81887
2004-05-15 19:08:04 +02:00
Tobias Schlüter
fb89e8bd06 dump-parse-tree.c (gfc_show_array_ref): Print colon only for ranges when dumping array references.
* dump-parse-tree.c (gfc_show_array_ref): Print colon only
for ranges when dumping array references.

From-SVN: r81866
2004-05-15 01:11:46 +02:00
Victor Leikehman
cb44ab824b decl.c (variable_decl): Always apply default initializer.
fortran/
	* decl.c (variable_decl): Always apply default initializer.
libgfortran/
	* gfortran.fortran-torture/execute/def_init_3.f90: New test.

From-SVN: r81865
2004-05-14 22:52:04 +00:00
Tobias Schlüter
4f9c6b6e18 re PR fortran/15206 (RRSPACING intrinsics returns wrong result for 0.0)
PR fortran/15206
* trans-intrinsic.c (gfc_conv_intrinsic_rrspacing): Fixed to
handle zero correctly.

From-SVN: r81848
2004-05-14 17:32:01 +02:00
Tobias Schlüter
a2f0e34d9e * match.c (gfc_match): Eliminate dead code.
From-SVN: r81846
2004-05-14 16:07:13 +02:00
Tobias Schlüter
5b5afddf1d parse.c (gfc_statement_next_fixed): (Change from Andy's tree) Detect bad continuation line in fixed form sources.
fortran:
* parse.c (gfc_statement_next_fixed): (Change from Andy's tree)
Detect bad continuation line in fixed form sources.

testsuite:
* gfortran.fortran-torture/compile/noncontinuation_1.f90: New
test.

From-SVN: r81845
2004-05-14 16:04:36 +02:00
Tobias Schlüter
8765339d0b re PR fortran/15205 (NEAREST intrinsic returns wrong value in DOUBLE PRECISION)
PR fortran/15205
* iresolve.c (gfc_resolve_nearest): Add new function.
* intrinsic.h: ... declare it here.
* intrinsic.c (add_functions): ... add it as resolving function
for NEAREST.

From-SVN: r81843
2004-05-14 15:51:27 +02:00
Tobias Schlüter
9b089e0545 re PR fortran/14066 (Infinite DO loops not recognized.)
fortran:
        PR fortran/14066
* match.c (gfc_match_do): Allow infinite loops with
label-do-stmt. Do not enforce space after comma.

testsuite:

PR fortran/14066
* gfortran.fortran-torture/compile/do_1.f90: New test.

Also fixed date on previous ChangeLog entries.

From-SVN: r81842
2004-05-14 15:46:05 +02:00
Tobias Schlüter
ee17cbda2e re PR fortran/15051 (Incorrect error for empty interface block)
testsuite:

PR fortran/15051
* gfortran.fortran-torture/compile/empty_interface_1.f90: New
test.

fortran:

        PR fortran/15051
* parse.c (parse_interface): Allow empty INTERFACE, remove
        seen_body.

Also added ChangeLog entry missing from previous commit, removed umlaut from ChangeLog, and fixed previous entry to use tabs.

From-SVN: r81841
2004-05-14 15:26:03 +02:00
Tobias Schlüter
9fc4d79ba4 Make-lang.in, [...]: Update copyright years and boilerplate.
* Make-lang.in, arith.c, arith.h, array.c, bbt.c, check.c,
decl.c, dependency.c, dependency.h, dump-parse-tree.c, error.c,
expr.c, f95-lang.c, gfortran.h, interface.c, intrinsic.c,
intrinsic.h, io.c, iresolve.c, lang-specs.h, match.c, match.h,
matchexp.c, misc.c, module.c, options.c, parse.c, parse.h,
primary.c, resolve.c, scanner.c, simplify.c, st.c, symbol.c,
trans-array.c, trans-array.h, trans-common.c, trans-const.c,
trans-const.h, trans-decl.c, trans-expr.c, trans-intrinsic.c,
trans-io.c, trans-stmt.c, trans-stmt.h, trans-types.c,
trans-types.h, trans.c, trans.h: Update copyright years and
boilerplate.
* data.c: Likewise, also removed two whitespace-only lines.
        * gfortranspec.c, lang.opt: Update copyright years.

From-SVN: r81839
2004-05-14 15:00:04 +02:00
Tobias Schlüter
ce8fc97bdf re PR fortran/14568 (should not warn about unused variables in common blocks)
PR fortran/14568
       * trans-decl.c (generate_local_decl): Don't warn for unused
       variables which are in common blocks.

From-SVN: r81837
2004-05-14 14:44:40 +02:00
Diego Novillo
eadf906f46 tree-gimple.c: Rename from tree-simple.c.
* tree-gimple.c: Rename from tree-simple.c.
	* tree-gimple.h: Rename from tree-simple.h.
	* c-gimplify.c: Rename from c-simplify.c
	* Makefile.in, c-decl.c, gimple-low.c, gimplify.c,
	langhooks.c, tree-alias-ander.c, tree-alias-common.c,
	tree-complex.c, tree-dfa.c, tree-flow.h, tree-inline.c,
	tree-into-ssa.c, tree-iterator.c, tree-mudflap.c,
	tree-nested.c, tree-nomudflap.c, tree-outof-ssa.c, tree-sra.c,
	tree-ssa-alias.c, tree-ssa-ccp.c, tree-ssa-copyrename.c,
	tree-ssa-dce.c, tree-ssa-live.c, tree-ssa-pre.c, tree-ssa.c:
	Update.

cp/ChangeLog

	* cp-gimplify.c: Rename from cp-simplify.c.
	* Make-lang.in, optimize.c: Update.

fortran/ChangeLog

	* Make-lang.in, f95-lang.c, trans-array.c, trans-decl.c,
	trans-expr.c, trans-intrinsic.c, trans-io.c, trans-stmt.c,
	trans.c: Rename tree-simple.[ch] to tree-gimple.[ch].

java/ChangeLog

	* Make-lang.in, expr.c, java-gimplify.c: Rename
	tree-simple.[ch] to tree-gimple.[ch].

From-SVN: r81829
2004-05-13 22:29:32 -04:00
Paul Brook
c39373da49 re PR fortran/15314 (ICE caused by array initializer in derived type definition)
PR fortran/15314
	* gfortran.fortran-torture/execute/der_init_s.f90: New test.

From-SVN: r81818
2004-05-13 23:22:13 +00:00
Paul Brook
979837429d re PR fortran/15314 (ICE caused by array initializer in derived type definition)
PR fortran/15314
	* trans-expr.c (gfc_conv_structure): Use field type, not expr type.

From-SVN: r81816
2004-05-13 23:11:47 +00:00
Joseph Myers
f8f456c68a gfortran.texi: Use @table @emph instead of @itemize @emph.
* gfortran.texi: Use @table @emph instead of @itemize @emph.
	Remove "set DEVELOPMENT".
	(Compiling GFORTRAN): Remove.

From-SVN: r81780
2004-05-13 13:30:21 +01:00
Diego Novillo
6de9cd9a88 Merge tree-ssa-20020619-branch into mainline.
From-SVN: r81764
2004-05-13 02:41:07 -04:00