2016-11-18 11:03:12 +01:00
|
|
|
|
2016-11-18 Richard Sandiford <richard.sandiford@arm.com>
|
|
|
|
|
Alan Hayward <alan.hayward@arm.com>
|
|
|
|
|
David Sherwood <david.sherwood@arm.com>
|
|
|
|
|
|
|
|
|
|
* trans-common.c (build_common_decl): Use SET_DECL_MODE.
|
|
|
|
|
* trans-decl.c (gfc_build_label_decl): Likewise.
|
|
|
|
|
* trans-types.c (gfc_get_array_descr_info): Likewise.
|
|
|
|
|
|
2016-11-17 08:52:24 +01:00
|
|
|
|
2016-11-17 Janus Weil <janus@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
PR fortran/66227
|
|
|
|
|
* simplify.c (gfc_simplify_extends_type_of): Fix missed optimization.
|
|
|
|
|
Prevent over-simplification. Fix a comment. Add a comment.
|
|
|
|
|
|
2016-11-17 01:18:18 +01:00
|
|
|
|
2016-11-16 Steven G. Kargl <kargl@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
PR fortran/58001
|
|
|
|
|
* io.c (next_char_not_space): Update handling of a 'tab' in a FORMAT.
|
|
|
|
|
(format_lex): Adjust invocations of next_char_not_space().
|
|
|
|
|
|
2016-11-16 14:45:29 +01:00
|
|
|
|
2016-11-16 Andre Vehreschild <vehre@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
PR fortran/78356
|
|
|
|
|
* class.c (gfc_is_class_scalar_expr): Prevent taking an array ref for
|
|
|
|
|
a component ref.
|
|
|
|
|
* trans-expr.c (gfc_trans_assignment_1): Ensure a reference to the
|
|
|
|
|
object to copy is generated, when assigning class objects.
|
|
|
|
|
|
2016-11-14 19:15:36 +01:00
|
|
|
|
2016-11-14 Thomas Koenig <tkoenig@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
* dump-parse-tree.c (show_code): Add prototype.
|
|
|
|
|
(gfc_debug_code): New function.
|
|
|
|
|
(show_code_node): Add space after SELECT TYPE.
|
|
|
|
|
|
2016-11-14 17:55:01 +01:00
|
|
|
|
2016-11-14 Janus Weil <janus@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
PR fortran/78300
|
|
|
|
|
* resolve.c (resolve_procedure_interface): Properly handle CLASS-valued
|
|
|
|
|
function results.
|
|
|
|
|
|
2016-11-13 12:12:05 +01:00
|
|
|
|
2016-11-13 Janus Weil <janus@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
PR fortran/60952
|
|
|
|
|
* decl.c (match_procedure_in_type): Apply the FL_PROCEDURE attribute
|
|
|
|
|
to the target procedure.
|
|
|
|
|
|
2016-11-13 10:56:10 +01:00
|
|
|
|
2016-11-13 Janus Weil <janus@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
PR fortran/66366
|
|
|
|
|
* resolve.c (resolve_component): Move check for C437
|
|
|
|
|
to ...
|
|
|
|
|
* decl.c (build_struct): ... here. Fix indentation.
|
|
|
|
|
|
2016-11-12 10:25:47 +01:00
|
|
|
|
2016-11-12 Janus Weil <janus@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
PR fortran/77501
|
|
|
|
|
* class.c (gfc_find_typebound_intrinsic_op): Remove an unnecessary
|
|
|
|
|
assert and nullification.
|
|
|
|
|
* decl.c (gfc_match_decl_type_spec): Use gfc_get_tbp_symtree,
|
|
|
|
|
fix indentation.
|
|
|
|
|
(gfc_match_generic): Remove an unnecessary assert.
|
|
|
|
|
Use gfc_get_tbp_symtree to avoid ICE.
|
|
|
|
|
|
2016-11-10 22:57:13 +01:00
|
|
|
|
2016-11-10 Fritz O. Reese <fritzoreese@gmail.com>
|
|
|
|
|
|
|
|
|
|
PR fortran/78277
|
|
|
|
|
* gcc/fortran/decl.c (gfc_match_data_decl): Gracefully handle bad
|
|
|
|
|
anonymous structure declarations.
|
|
|
|
|
|
2016-11-10 22:54:48 +01:00
|
|
|
|
2016-11-10 Fritz O. Reese <fritzoreese@gmail.com>
|
|
|
|
|
|
|
|
|
|
* decl.c (get_struct_decl, gfc_match_map, gfc_match_union): Fix
|
|
|
|
|
whitespace.
|
|
|
|
|
* interface.c (gfc_compare_union_types): Likewise.
|
|
|
|
|
|
omp-low.c (lower_omp_target): Fix up argument to is_reference.
gcc/
* omp-low.c (lower_omp_target): Fix up argument to is_reference.
(expand_omp_ordered_sink): Handle TREE_PURPOSE of deps being
TRUNC_DIV_EXPR.
* gimplify.c (gimplify_scan_omp_clauses): Likewise. Set
ctx->target_map_scalars_firstprivate on OMP_TARGET even for Fortran.
Remove omp_no_lastprivate callers. Propagate lastprivate on combined
teams distribute parallel for simd even to distribute and teams
construct. For OMP_CLAUSE_DEPEND add missing break at the end of
OMP_CLAUSE_DEPEND_SINK case.
(omp_notice_variable): Use lang_hooks.decls.omp_scalar_p.
(omp_no_lastprivate): Removed.
(gimplify_adjust_omp_clauses): Remove omp_no_lastprivate callers.
(gimplify_omp_for): Likewise.
(computable_teams_clause): Fail for automatic vars from current
function not yet seen in bind expr.
* langhooks.c (lhd_omp_scalar_p): New function.
* langhooks.h (struct lang_hooks_for_decls): Add omp_scalar_p.
* varpool.c (varpool_node::get_create): Set node->offloading
even for DECL_EXTERNAL decls.
* langhooks-def.h (lhd_omp_scalar_p): New prototype.
(LANG_HOOKS_OMP_SCALAR_P): Define.
(LANG_HOOKS_DECLS): Use it.
gcc/fortran/
* openmp.c (gfc_free_omp_clauses): Free critical_name, grainsize,
hint, num_tasks, priority and if_exprs.
(gfc_match_omp_to_link, gfc_match_omp_depend_sink): New functions.
(enum omp_mask1, enum omp_mask2): New enums.
Change all OMP_CLAUSE_* defines into enum values, and change their
values from ((uint64_t) 1 << bit) to just bit.
(omp_mask, omp_inv_mask): New classes. Add ctors and operators.
(gfc_match_omp_clauses): Change mask argument from uint64_t to
const omp_mask. Assert OMP_MASK1_LAST and OMP_MASK2_LAST are
at most 64. Move delete clause handling to where it
alphabetically belongs. Parse defaultmap, grainsize, hint,
is_device_ptr, nogroup, nowait, num_tasks, priority, simd, threads
and use_device_ptr clauses. Parse if clause modifier. Parse map
clause always modifier, and release and delete kinds. Parse ordered
clause with argument. Parse schedule clause modifiers. Differentiate
device clause parsing based on openacc flag. Guard link clause
parsing with openacc flag. Add support for parsing
linear clause modifiers. Parse depend(source) and depend(sink: ...).
Use gfc_match_omp_to_link for to and link clauses in declare target
construct.
(match_acc): Change mask type from uint64_t to const omp_mask.
(OMP_SINGLE_CLAUSES, OMP_ORDERED_CLAUSES,
OMP_DECLARE_TARGET_CLAUSES, OMP_TASKLOOP_CLAUSES,
OMP_TARGET_ENTER_DATA_CLAUSES, OMP_TARGET_EXIT_DATA_CLAUSES): Define.
(OACC_PARALLEL_CLAUSES, OACC_KERNELS_CLAUSES, OACC_DATA_CLAUSES,
OACC_LOOP_CLAUSES, OACC_HOST_DATA_CLAUSES, OACC_DECLARE_CLAUSES,
OACC_ENTER_DATA_CLAUSES, OACC_EXIT_DATA_CLAUSES, OACC_WAIT_CLAUSES,
OACC_ROUTINE_CLAUSES, OMP_PARALLEL_CLAUSES, OMP_DECLARE_SIMD_CLAUSES,
OMP_SECTIONS_CLAUSES, OMP_TEAMS_CLAUSES, OMP_DISTRIBUTE_CLAUSES):
Replace first or only OMP_CLAUSE_* value in bitset with
omp_mask (OMP_CLAUSE_*).
(OMP_DO_CLAUSES): Likewise. Add OMP_CLAUSE_LINEAR.
(OMP_SIMD_CLAUSES): Replace first or only OMP_CLAUSE_* value in
bitset with omp_mask (OMP_CLAUSE_*). Add OMP_CLAUSE_SIMDLEN.
(OACC_UPDATE_CLAUSES): Replace first or only OMP_CLAUSE_* value in
bitset with omp_mask (OMP_CLAUSE_*). Replace OMP_CLAUSE_OACC_DEVICE
with OMP_CLAUSE_DEVICE.
(OMP_TASK_CLAUSES): Replace first or only OMP_CLAUSE_* value in
bitset with omp_mask (OMP_CLAUSE_*). Add OMP_CLAUSE_PRIORITY.
(OMP_TARGET_CLAUSES): Replace first or only OMP_CLAUSE_* value in
bitset with omp_mask (OMP_CLAUSE_*). Add OMP_CLAUSE_DEPEND,
OMP_CLAUSE_NOWAIT, OMP_CLAUSE_PRIVATE, OMP_CLAUSE_FIRSTPRIVATE,
OMP_CLAUSE_DEFAULTMAP and OMP_CLAUSE_IS_DEVICE_PTR.
(OMP_TARGET_DATA_CLAUSES): Replace first or only OMP_CLAUSE_* value in
bitset with omp_mask (OMP_CLAUSE_*). Add OMP_CLAUSE_USE_DEVICE_PTR.
(OMP_TARGET_UPDATE_CLAUSES): Replace first or only OMP_CLAUSE_* value
in bitset with omp_mask (OMP_CLAUSE_*). Add OMP_CLAUSE_DEPEND and
OMP_CLAUSE_NOWAIT.
(match_omp): Change mask argument from unsigned int to
const omp_mask.
(gfc_match_omp_critical): Parse optional clauses and use omp_clauses
union member instead of omp_name.
(gfc_match_omp_end_critical): New function.
(gfc_match_omp_distribute_parallel_do): Remove ordered and linear
clauses from the mask.
(gfc_match_omp_distribute_parallel_do_simd): Use
& ~(omp_mask (OMP_CLAUSE_*)) instead of & ~OMP_CLAUSE_*.
(gfc_match_omp_target_teams_distribute_parallel_do_simd): Likewise.
(gfc_match_omp_teams_distribute_parallel_do_simd): Likewise.
(gfc_match_omp_do_simd): Likewise. Don't remove ordered clause from
the mask.
(gfc_match_omp_parallel_do_simd): Likewise.
(gfc_match_omp_target_teams_distribute_parallel_do): Likewise.
(gfc_match_omp_teams_distribute_parallel_do): Likewise.
(gfc_match_omp_declare_simd): If not using the form with
(proc-name), require space before first clause. Make (proc-name)
optional. If not present, set proc_name to NULL.
(gfc_match_omp_declare_target): Rewritten for OpenMP 4.5.
(gfc_match_omp_single): Use OMP_SINGLE_CLAUSES.
(gfc_match_omp_task, gfc_match_omp_taskwait, gfc_match_omp_taskyield):
Move around to where they belong alphabetically.
(gfc_match_omp_target_enter_data, gfc_match_omp_target_exit_data,
gfc_match_omp_target_parallel, gfc_match_omp_target_parallel_do,
gfc_match_omp_target_parallel_do_simd, gfc_match_omp_target_simd,
gfc_match_omp_taskloop, gfc_match_omp_taskloop_simd):
New functions.
(gfc_match_omp_ordered): Parse clauses.
(gfc_match_omp_ordered_depend): New function.
(gfc_match_omp_cancel, gfc_match_omp_end_single): Use
omp_mask (OMP_CLAUSE_*) instead of OMP_CLAUSE_*.
(resolve_oacc_scalar_int_expr): Renamed to ...
(resolve_scalar_int_expr): ... this. Fix up formatting.
(resolve_oacc_positive_int_expr): Renamed to ...
(resolve_positive_int_expr): ... this. Fix up formatting.
(resolve_nonnegative_int_expr): New function.
(resolve_omp_clauses): Adjust callers, use the above functions
even for OpenMP clauses, add handling of new OpenMP 4.5 clauses.
Require orderedc >= collapse if specified. Handle depend(sink:)
and depend(source) restrictions. Disallow linear clause when
orderedc is non-zero. Diagnose linear clause modifiers when not in
declare simd. Only check for integer type if ref modifier
is not used. Remove diagnostics for required VALUE attribute.
Diagnose VALUE attribute with ref or uval modifiers. Allow
non-constant linear-step, if it is a dummy argument alone and is
mentioned in uniform clause. Diagnose map kinds not allowed
for various constructs. Diagnose target {enter ,exit ,}data without
any map clauses. Add dummy OMP_LIST_IS_DEVICE_PTR and
OMP_LIST_USE_DEVICE_PTR cases.
(gfc_resolve_omp_do_blocks): Set omp_current_do_collapse to orderedc
if non-zero.
(gfc_resolve_omp_parallel_blocks): Handle new OpenMP 4.5 constructs,
replace underscores with spaces in a few construct names.
(resolve_omp_do): Set collapse to orderedc if non-zero. Handle new
OpenMP 4.5 constructs.
(resolve_oacc_loop_blocks): Call resolve_positive_int_expr instead
of resolve_oacc_positive_int_expr.
(gfc_resolve_omp_directive): Handle new OpenMP 4.5 constructs.
(gfc_resolve_omp_declare_simd): Allow ods->proc_name to be NULL.
* trans-openmp.c (gfc_omp_scalar_p): New function.
(doacross_steps): New variable.
(gfc_trans_omp_clauses): Handle new OpenMP 4.5 clauses and new clause
modifiers.
(gfc_trans_omp_critical): Adjust EXEC_OMP_CRITICAL handling.
(gfc_trans_omp_do): Handle doacross loops. Clear sched_simd flag.
Handle EXEC_OMP_TASKLOOP.
(gfc_trans_omp_ordered): Translate omp clauses, allow NULL
code->block.
(GFC_OMP_SPLIT_TASKLOOP, GFC_OMP_MASK_TASKLOOP): New enum constants.
(gfc_split_omp_clauses): Copy orderedc together with ordered. Change
firstprivate and lastprivate handling for OpenMP 4.5.
Handle EXEC_OMP_TARGET_SIMD, EXEC_OMP_TARGET_PARALLEL{,_DO,_DO_SIMD}
and EXEC_OMP_TASKLOOP{,_SIMD}. Add handling for new OpenMP 4.5
clauses and clause modifiers and handle if clause without/with
modifiers.
(gfc_trans_omp_teams): Add omp_clauses argument, add it to other
teams clauses. Don't wrap into OMP_TEAMS if -fopenmp-simd.
(gfc_trans_omp_target): For -fopenmp, translate num_teams and
thread_limit clauses on combined target teams early and pass to
gfc_trans_omp_teams. Set OMP_TARGET_COMBINED if needed.
Handle EXEC_OMP_TARGET_PARALLEL{,_DO,_DO_SIMD} and
EXEC_OMP_TARGET_SIMD.
(gfc_trans_omp_taskloop, gfc_trans_omp_target_enter_data,
gfc_trans_omp_target_exit_data): New functions.
(gfc_trans_omp_directive): Handle EXEC_OMP_TARGET_{ENTER,EXIT}_DATA
EXEC_OMP_TASKLOOP{,_SIMD}, EXEC_OMP_TARGET_PARALLEL{,_DO,_DO_SIMD}
and EXEC_OMP_TARGET_SIMD. Adjust gfc_trans_omp_teams caller.
* symbol.c (check_conflict): Handle omp_declare_target_link.
(gfc_add_omp_declare_target_link): New function.
(gfc_copy_attr): Copy omp_declare_target_link.
* dump-parse-tree.c (show_omp_namelist): Handle OMP_DEPEND_SINK_FIRST
depend_op. Print linear clause modifiers.
(show_omp_clauses): Adjust for OpenMP 4.5 clause changes.
(show_omp_node): Print clauses for EXEC_OMP_ORDERED. Allow NULL
c->block for EXEC_OMP_ORDERED. Formatting fixes. Adjust handling of
EXEC_OMP_CRITICAL, handle new OpenMP 4.5 constructs and some
forgotten OpenMP 4.0 constructs.
(show_code_node): Handle new OpenMP 4.5 constructs and some forgotten
OpenMP 4.0 constructs.
* gfortran.h (symbol_attribute): Add omp_declare_target_link bitfield.
(struct gfc_omp_namelist): Add u.common and u.linear_op fields.
(struct gfc_common_head): Change omp_declare_target into bitfield.
Add omp_declare_target_link bitfield.
(gfc_add_omp_declare_target_link): New prototype.
(enum gfc_statement): Add ST_OMP_TARGET_PARALLEL,
ST_OMP_END_TARGET_PARALLEL, ST_OMP_TARGET_PARALLEL_DO,
ST_OMP_END_TARGET_PARALLEL_DO, ST_OMP_TARGET_PARALLEL_DO_SIMD,
ST_OMP_END_TARGET_PARALLEL_DO_SIMD, ST_OMP_TARGET_ENTER_DATA,
ST_OMP_TARGET_EXIT_DATA, ST_OMP_TARGET_SIMD, ST_OMP_END_TARGET_SIMD,
ST_OMP_TASKLOOP, ST_OMP_END_TASKLOOP, ST_OMP_TASKLOOP_SIMD,
ST_OMP_END_TASKLOOP_SIMD and ST_OMP_ORDERED_DEPEND.
(enum gfc_omp_depend_op): Add OMP_DEPEND_SINK_FIRST and
OMP_DEPEND_SINK.
(enum gfc_omp_linear_op): New.
(struct gfc_omp_clauses): Add critical_name, depend_source,
orderedc, defaultmap, nogroup, sched_simd, sched_monotonic,
sched_nonmonotonic, simd, threads, grainsize, hint, num_tasks,
priority and if_exprs fields.
(enum gfc_exec_op): Add EXEC_OMP_END_CRITICAL,
EXEC_OMP_TARGET_ENTER_DATA, EXEC_OMP_TARGET_EXIT_DATA,
EXEC_OMP_TARGET_PARALLEL, EXEC_OMP_TARGET_PARALLEL_DO,
EXEC_OMP_TARGET_PARALLEL_DO_SIMD, EXEC_OMP_TARGET_SIMD,
EXEC_OMP_TASKLOOP, EXEC_OMP_TASKLOOP_SIMD.
(enum gfc_omp_map_op): Add OMP_MAP_RELEASE,
OMP_MAP_ALWAYS_TO, OMP_MAP_ALWAYS_FROM and OMP_MAP_ALWAYS_TOFROM.
(OMP_LIST_IS_DEVICE_PTR, OMP_LIST_USE_DEVICE_PTR): New.
(enum gfc_omp_if_kind): New.
* module.c (enum ab_attribute): Add AB_OMP_DECLARE_TARGET_LINK.
(attr_bits): Add AB_OMP_DECLARE_TARGET_LINK entry.
(mio_symbol_attribute): Save and restore omp_declare_target_link bit.
* trans.h (gfc_omp_scalar_p): New prototype.
* frontend-passes.c (gfc_code_walker): Handle new OpenMP 4.5
expressions.
* trans.c (trans_code): Handle new OpenMP 4.5 constructs.
* resolve.c (gfc_resolve_blocks): Likewise.
(gfc_resolve_code): Likewise.
* f95-lang.c (LANG_HOOKS_OMP_SCALAR_P): Redefine to gfc_omp_scalar_p.
(gfc_attribute_table): Add "omp declare target link".
* st.c (gfc_free_statement): Handle EXEC_OMP_END_CRITICAL like
EXEC_OMP_CRITICAL before, free clauses for EXEC_OMP_CRITICAL
and new OpenMP 4.5 constructs. Free omp clauses even for
EXEC_OMP_ORDERED.
* match.c (match_exit_cycle): Rename collapse variable to count,
set it to orderedc if non-zero, instead of collapse.
* trans-decl.c (add_attributes_to_decl): Add "omp declare target link"
instead of "omp declare target" for omp_declare_target_link.
* trans-common.c (build_common_decl): Likewise.
* match.h (gfc_match_omp_target_enter_data,
gfc_match_omp_target_exit_data, gfc_match_omp_target_parallel,
gfc_match_omp_target_parallel_do,
gfc_match_omp_target_parallel_do_simd, gfc_match_omp_target_simd,
gfc_match_omp_taskloop, gfc_match_omp_taskloop_simd,
gfc_match_omp_end_critical, gfc_match_omp_ordered_depend): New
prototypes.
* parse.c (decode_omp_directive): Use gfc_match_omp_end_critical
instead of gfc_match_omp_critical for !$omp end critical.
Handle new OpenMP 4.5 constructs. If ordered directive has
depend clause as the first of the clauses, use
gfc_match_omp_ordered_depend and ST_OMP_ORDERED_DEPEND instead of
gfc_match_omp_ordered and ST_OMP_ORDERED.
(case_executable): Add ST_OMP_TARGET_ENTER_DATA,
ST_OMP_TARGET_EXIT_DATA and ST_OMP_ORDERED_DEPEND cases.
(case_exec_markers): Add ST_OMP_TARGET_PARALLEL,
ST_OMP_TARGET_PARALLEL_DO, ST_OMP_TARGET_PARALLEL_DO_SIMD,
ST_OMP_TARGET_SIMD, ST_OMP_TASKLOOP and ST_OMP_TASKLOOP_SIMD cases.
(gfc_ascii_statement): Handle new OpenMP 4.5 constructs.
(parse_omp_do): Handle ST_OMP_TARGET_PARALLEL_DO,
ST_OMP_TARGET_PARALLEL_DO_SIMD, ST_OMP_TASKLOOP and
ST_OMP_TASKLOOP_SIMD.
(parse_omp_structured_block): Handle EXEC_OMP_END_CRITICAL instead
of EXEC_OMP_CRITICAL, adjust for EXEC_OMP_CRITICAL having omp clauses
now.
(parse_executable): Handle ST_OMP_TARGET_PARALLEL,
ST_OMP_TARGET_PARALLEL_DO, ST_OMP_TARGET_PARALLEL_DO_SIMD,
ST_OMP_TASKLOOP and ST_OMP_TASKLOOP_SIMD.
gcc/testsuite/
* gfortran.dg/gomp/pr77516.f90: Add dg-warning.
* gfortran.dg/gomp/target1.f90: Remove ordered clause where it is
no longer allowed and corresponding ordered construct.
* gfortran.dg/gomp/linear-1.f90: New test.
* gfortran.dg/gomp/declare-simd-2.f90: New test.
* gfortran.dg/gomp/declare-target-1.f90: New test.
* gfortran.dg/gomp/declare-target-2.f90: New test.
libgomp/
* testsuite/libgomp.fortran/examples-4/declare_target-1.f90
(fib_wrapper): Add map(from: x) clause.
* testsuite/libgomp.fortran/examples-4/declare_target-2.f90
(e_53_2): Likewise.
* testsuite/libgomp.fortran/examples-4/declare_target-4.f90
(accum): Add map(tmp) clause.
* testsuite/libgomp.fortran/examples-4/declare_target-5.f90
(accum): Add map(tofrom: tmp) clause.
* testsuite/libgomp.fortran/examples-4/target_data-3.f90
(gramSchmidt): Likewise.
* testsuite/libgomp.fortran/examples-4/teams-2.f90 (dotprod): Add
map(tofrom: sum) clause.
* testsuite/libgomp.fortran/nestedfn5.f90 (foo): Add twice
map (alloc: a, l) clause. Add defaultmap(tofrom: scalar) clause.
* testsuite/libgomp.fortran/pr66199-2.f90: Adjust for linear clause
only allowed on the loop iterator.
* testsuite/libgomp.fortran/target4.f90 (foo): Add map(t) clause.
* testsuite/libgomp.fortran/taskloop2.f90: New test.
* testsuite/libgomp.fortran/taskloop4.f90: New test.
* testsuite/libgomp.fortran/doacross1.f90: New test.
* testsuite/libgomp.fortran/doacross3.f90: New test.
* testsuite/libgomp.fortran/taskloop1.f90: New test.
* testsuite/libgomp.fortran/taskloop3.f90: New test.
* testsuite/libgomp.fortran/doacross2.f90: New test.
* testsuite/libgomp.c/doacross-1.c (main): Add missing
#pragma omp atomic read.
* testsuite/libgomp.c/doacross-2.c (main): Likewise.
* testsuite/libgomp.c/doacross-3.c (main): Likewise.
From-SVN: r242037
2016-11-10 12:38:05 +01:00
|
|
|
|
2016-11-10 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
2016-11-10 18:05:18 +01:00
|
|
|
|
* cpp.c (cpp_define_builtins): Define _OPENMP to 201511 instead
|
|
|
|
|
of 201307.
|
|
|
|
|
* gfortran.texi: Mention partial OpenMP 4.5 support.
|
|
|
|
|
* intrinsic.texi: Update for OpenMP 4.5.
|
|
|
|
|
|
omp-low.c (lower_omp_target): Fix up argument to is_reference.
gcc/
* omp-low.c (lower_omp_target): Fix up argument to is_reference.
(expand_omp_ordered_sink): Handle TREE_PURPOSE of deps being
TRUNC_DIV_EXPR.
* gimplify.c (gimplify_scan_omp_clauses): Likewise. Set
ctx->target_map_scalars_firstprivate on OMP_TARGET even for Fortran.
Remove omp_no_lastprivate callers. Propagate lastprivate on combined
teams distribute parallel for simd even to distribute and teams
construct. For OMP_CLAUSE_DEPEND add missing break at the end of
OMP_CLAUSE_DEPEND_SINK case.
(omp_notice_variable): Use lang_hooks.decls.omp_scalar_p.
(omp_no_lastprivate): Removed.
(gimplify_adjust_omp_clauses): Remove omp_no_lastprivate callers.
(gimplify_omp_for): Likewise.
(computable_teams_clause): Fail for automatic vars from current
function not yet seen in bind expr.
* langhooks.c (lhd_omp_scalar_p): New function.
* langhooks.h (struct lang_hooks_for_decls): Add omp_scalar_p.
* varpool.c (varpool_node::get_create): Set node->offloading
even for DECL_EXTERNAL decls.
* langhooks-def.h (lhd_omp_scalar_p): New prototype.
(LANG_HOOKS_OMP_SCALAR_P): Define.
(LANG_HOOKS_DECLS): Use it.
gcc/fortran/
* openmp.c (gfc_free_omp_clauses): Free critical_name, grainsize,
hint, num_tasks, priority and if_exprs.
(gfc_match_omp_to_link, gfc_match_omp_depend_sink): New functions.
(enum omp_mask1, enum omp_mask2): New enums.
Change all OMP_CLAUSE_* defines into enum values, and change their
values from ((uint64_t) 1 << bit) to just bit.
(omp_mask, omp_inv_mask): New classes. Add ctors and operators.
(gfc_match_omp_clauses): Change mask argument from uint64_t to
const omp_mask. Assert OMP_MASK1_LAST and OMP_MASK2_LAST are
at most 64. Move delete clause handling to where it
alphabetically belongs. Parse defaultmap, grainsize, hint,
is_device_ptr, nogroup, nowait, num_tasks, priority, simd, threads
and use_device_ptr clauses. Parse if clause modifier. Parse map
clause always modifier, and release and delete kinds. Parse ordered
clause with argument. Parse schedule clause modifiers. Differentiate
device clause parsing based on openacc flag. Guard link clause
parsing with openacc flag. Add support for parsing
linear clause modifiers. Parse depend(source) and depend(sink: ...).
Use gfc_match_omp_to_link for to and link clauses in declare target
construct.
(match_acc): Change mask type from uint64_t to const omp_mask.
(OMP_SINGLE_CLAUSES, OMP_ORDERED_CLAUSES,
OMP_DECLARE_TARGET_CLAUSES, OMP_TASKLOOP_CLAUSES,
OMP_TARGET_ENTER_DATA_CLAUSES, OMP_TARGET_EXIT_DATA_CLAUSES): Define.
(OACC_PARALLEL_CLAUSES, OACC_KERNELS_CLAUSES, OACC_DATA_CLAUSES,
OACC_LOOP_CLAUSES, OACC_HOST_DATA_CLAUSES, OACC_DECLARE_CLAUSES,
OACC_ENTER_DATA_CLAUSES, OACC_EXIT_DATA_CLAUSES, OACC_WAIT_CLAUSES,
OACC_ROUTINE_CLAUSES, OMP_PARALLEL_CLAUSES, OMP_DECLARE_SIMD_CLAUSES,
OMP_SECTIONS_CLAUSES, OMP_TEAMS_CLAUSES, OMP_DISTRIBUTE_CLAUSES):
Replace first or only OMP_CLAUSE_* value in bitset with
omp_mask (OMP_CLAUSE_*).
(OMP_DO_CLAUSES): Likewise. Add OMP_CLAUSE_LINEAR.
(OMP_SIMD_CLAUSES): Replace first or only OMP_CLAUSE_* value in
bitset with omp_mask (OMP_CLAUSE_*). Add OMP_CLAUSE_SIMDLEN.
(OACC_UPDATE_CLAUSES): Replace first or only OMP_CLAUSE_* value in
bitset with omp_mask (OMP_CLAUSE_*). Replace OMP_CLAUSE_OACC_DEVICE
with OMP_CLAUSE_DEVICE.
(OMP_TASK_CLAUSES): Replace first or only OMP_CLAUSE_* value in
bitset with omp_mask (OMP_CLAUSE_*). Add OMP_CLAUSE_PRIORITY.
(OMP_TARGET_CLAUSES): Replace first or only OMP_CLAUSE_* value in
bitset with omp_mask (OMP_CLAUSE_*). Add OMP_CLAUSE_DEPEND,
OMP_CLAUSE_NOWAIT, OMP_CLAUSE_PRIVATE, OMP_CLAUSE_FIRSTPRIVATE,
OMP_CLAUSE_DEFAULTMAP and OMP_CLAUSE_IS_DEVICE_PTR.
(OMP_TARGET_DATA_CLAUSES): Replace first or only OMP_CLAUSE_* value in
bitset with omp_mask (OMP_CLAUSE_*). Add OMP_CLAUSE_USE_DEVICE_PTR.
(OMP_TARGET_UPDATE_CLAUSES): Replace first or only OMP_CLAUSE_* value
in bitset with omp_mask (OMP_CLAUSE_*). Add OMP_CLAUSE_DEPEND and
OMP_CLAUSE_NOWAIT.
(match_omp): Change mask argument from unsigned int to
const omp_mask.
(gfc_match_omp_critical): Parse optional clauses and use omp_clauses
union member instead of omp_name.
(gfc_match_omp_end_critical): New function.
(gfc_match_omp_distribute_parallel_do): Remove ordered and linear
clauses from the mask.
(gfc_match_omp_distribute_parallel_do_simd): Use
& ~(omp_mask (OMP_CLAUSE_*)) instead of & ~OMP_CLAUSE_*.
(gfc_match_omp_target_teams_distribute_parallel_do_simd): Likewise.
(gfc_match_omp_teams_distribute_parallel_do_simd): Likewise.
(gfc_match_omp_do_simd): Likewise. Don't remove ordered clause from
the mask.
(gfc_match_omp_parallel_do_simd): Likewise.
(gfc_match_omp_target_teams_distribute_parallel_do): Likewise.
(gfc_match_omp_teams_distribute_parallel_do): Likewise.
(gfc_match_omp_declare_simd): If not using the form with
(proc-name), require space before first clause. Make (proc-name)
optional. If not present, set proc_name to NULL.
(gfc_match_omp_declare_target): Rewritten for OpenMP 4.5.
(gfc_match_omp_single): Use OMP_SINGLE_CLAUSES.
(gfc_match_omp_task, gfc_match_omp_taskwait, gfc_match_omp_taskyield):
Move around to where they belong alphabetically.
(gfc_match_omp_target_enter_data, gfc_match_omp_target_exit_data,
gfc_match_omp_target_parallel, gfc_match_omp_target_parallel_do,
gfc_match_omp_target_parallel_do_simd, gfc_match_omp_target_simd,
gfc_match_omp_taskloop, gfc_match_omp_taskloop_simd):
New functions.
(gfc_match_omp_ordered): Parse clauses.
(gfc_match_omp_ordered_depend): New function.
(gfc_match_omp_cancel, gfc_match_omp_end_single): Use
omp_mask (OMP_CLAUSE_*) instead of OMP_CLAUSE_*.
(resolve_oacc_scalar_int_expr): Renamed to ...
(resolve_scalar_int_expr): ... this. Fix up formatting.
(resolve_oacc_positive_int_expr): Renamed to ...
(resolve_positive_int_expr): ... this. Fix up formatting.
(resolve_nonnegative_int_expr): New function.
(resolve_omp_clauses): Adjust callers, use the above functions
even for OpenMP clauses, add handling of new OpenMP 4.5 clauses.
Require orderedc >= collapse if specified. Handle depend(sink:)
and depend(source) restrictions. Disallow linear clause when
orderedc is non-zero. Diagnose linear clause modifiers when not in
declare simd. Only check for integer type if ref modifier
is not used. Remove diagnostics for required VALUE attribute.
Diagnose VALUE attribute with ref or uval modifiers. Allow
non-constant linear-step, if it is a dummy argument alone and is
mentioned in uniform clause. Diagnose map kinds not allowed
for various constructs. Diagnose target {enter ,exit ,}data without
any map clauses. Add dummy OMP_LIST_IS_DEVICE_PTR and
OMP_LIST_USE_DEVICE_PTR cases.
(gfc_resolve_omp_do_blocks): Set omp_current_do_collapse to orderedc
if non-zero.
(gfc_resolve_omp_parallel_blocks): Handle new OpenMP 4.5 constructs,
replace underscores with spaces in a few construct names.
(resolve_omp_do): Set collapse to orderedc if non-zero. Handle new
OpenMP 4.5 constructs.
(resolve_oacc_loop_blocks): Call resolve_positive_int_expr instead
of resolve_oacc_positive_int_expr.
(gfc_resolve_omp_directive): Handle new OpenMP 4.5 constructs.
(gfc_resolve_omp_declare_simd): Allow ods->proc_name to be NULL.
* trans-openmp.c (gfc_omp_scalar_p): New function.
(doacross_steps): New variable.
(gfc_trans_omp_clauses): Handle new OpenMP 4.5 clauses and new clause
modifiers.
(gfc_trans_omp_critical): Adjust EXEC_OMP_CRITICAL handling.
(gfc_trans_omp_do): Handle doacross loops. Clear sched_simd flag.
Handle EXEC_OMP_TASKLOOP.
(gfc_trans_omp_ordered): Translate omp clauses, allow NULL
code->block.
(GFC_OMP_SPLIT_TASKLOOP, GFC_OMP_MASK_TASKLOOP): New enum constants.
(gfc_split_omp_clauses): Copy orderedc together with ordered. Change
firstprivate and lastprivate handling for OpenMP 4.5.
Handle EXEC_OMP_TARGET_SIMD, EXEC_OMP_TARGET_PARALLEL{,_DO,_DO_SIMD}
and EXEC_OMP_TASKLOOP{,_SIMD}. Add handling for new OpenMP 4.5
clauses and clause modifiers and handle if clause without/with
modifiers.
(gfc_trans_omp_teams): Add omp_clauses argument, add it to other
teams clauses. Don't wrap into OMP_TEAMS if -fopenmp-simd.
(gfc_trans_omp_target): For -fopenmp, translate num_teams and
thread_limit clauses on combined target teams early and pass to
gfc_trans_omp_teams. Set OMP_TARGET_COMBINED if needed.
Handle EXEC_OMP_TARGET_PARALLEL{,_DO,_DO_SIMD} and
EXEC_OMP_TARGET_SIMD.
(gfc_trans_omp_taskloop, gfc_trans_omp_target_enter_data,
gfc_trans_omp_target_exit_data): New functions.
(gfc_trans_omp_directive): Handle EXEC_OMP_TARGET_{ENTER,EXIT}_DATA
EXEC_OMP_TASKLOOP{,_SIMD}, EXEC_OMP_TARGET_PARALLEL{,_DO,_DO_SIMD}
and EXEC_OMP_TARGET_SIMD. Adjust gfc_trans_omp_teams caller.
* symbol.c (check_conflict): Handle omp_declare_target_link.
(gfc_add_omp_declare_target_link): New function.
(gfc_copy_attr): Copy omp_declare_target_link.
* dump-parse-tree.c (show_omp_namelist): Handle OMP_DEPEND_SINK_FIRST
depend_op. Print linear clause modifiers.
(show_omp_clauses): Adjust for OpenMP 4.5 clause changes.
(show_omp_node): Print clauses for EXEC_OMP_ORDERED. Allow NULL
c->block for EXEC_OMP_ORDERED. Formatting fixes. Adjust handling of
EXEC_OMP_CRITICAL, handle new OpenMP 4.5 constructs and some
forgotten OpenMP 4.0 constructs.
(show_code_node): Handle new OpenMP 4.5 constructs and some forgotten
OpenMP 4.0 constructs.
* gfortran.h (symbol_attribute): Add omp_declare_target_link bitfield.
(struct gfc_omp_namelist): Add u.common and u.linear_op fields.
(struct gfc_common_head): Change omp_declare_target into bitfield.
Add omp_declare_target_link bitfield.
(gfc_add_omp_declare_target_link): New prototype.
(enum gfc_statement): Add ST_OMP_TARGET_PARALLEL,
ST_OMP_END_TARGET_PARALLEL, ST_OMP_TARGET_PARALLEL_DO,
ST_OMP_END_TARGET_PARALLEL_DO, ST_OMP_TARGET_PARALLEL_DO_SIMD,
ST_OMP_END_TARGET_PARALLEL_DO_SIMD, ST_OMP_TARGET_ENTER_DATA,
ST_OMP_TARGET_EXIT_DATA, ST_OMP_TARGET_SIMD, ST_OMP_END_TARGET_SIMD,
ST_OMP_TASKLOOP, ST_OMP_END_TASKLOOP, ST_OMP_TASKLOOP_SIMD,
ST_OMP_END_TASKLOOP_SIMD and ST_OMP_ORDERED_DEPEND.
(enum gfc_omp_depend_op): Add OMP_DEPEND_SINK_FIRST and
OMP_DEPEND_SINK.
(enum gfc_omp_linear_op): New.
(struct gfc_omp_clauses): Add critical_name, depend_source,
orderedc, defaultmap, nogroup, sched_simd, sched_monotonic,
sched_nonmonotonic, simd, threads, grainsize, hint, num_tasks,
priority and if_exprs fields.
(enum gfc_exec_op): Add EXEC_OMP_END_CRITICAL,
EXEC_OMP_TARGET_ENTER_DATA, EXEC_OMP_TARGET_EXIT_DATA,
EXEC_OMP_TARGET_PARALLEL, EXEC_OMP_TARGET_PARALLEL_DO,
EXEC_OMP_TARGET_PARALLEL_DO_SIMD, EXEC_OMP_TARGET_SIMD,
EXEC_OMP_TASKLOOP, EXEC_OMP_TASKLOOP_SIMD.
(enum gfc_omp_map_op): Add OMP_MAP_RELEASE,
OMP_MAP_ALWAYS_TO, OMP_MAP_ALWAYS_FROM and OMP_MAP_ALWAYS_TOFROM.
(OMP_LIST_IS_DEVICE_PTR, OMP_LIST_USE_DEVICE_PTR): New.
(enum gfc_omp_if_kind): New.
* module.c (enum ab_attribute): Add AB_OMP_DECLARE_TARGET_LINK.
(attr_bits): Add AB_OMP_DECLARE_TARGET_LINK entry.
(mio_symbol_attribute): Save and restore omp_declare_target_link bit.
* trans.h (gfc_omp_scalar_p): New prototype.
* frontend-passes.c (gfc_code_walker): Handle new OpenMP 4.5
expressions.
* trans.c (trans_code): Handle new OpenMP 4.5 constructs.
* resolve.c (gfc_resolve_blocks): Likewise.
(gfc_resolve_code): Likewise.
* f95-lang.c (LANG_HOOKS_OMP_SCALAR_P): Redefine to gfc_omp_scalar_p.
(gfc_attribute_table): Add "omp declare target link".
* st.c (gfc_free_statement): Handle EXEC_OMP_END_CRITICAL like
EXEC_OMP_CRITICAL before, free clauses for EXEC_OMP_CRITICAL
and new OpenMP 4.5 constructs. Free omp clauses even for
EXEC_OMP_ORDERED.
* match.c (match_exit_cycle): Rename collapse variable to count,
set it to orderedc if non-zero, instead of collapse.
* trans-decl.c (add_attributes_to_decl): Add "omp declare target link"
instead of "omp declare target" for omp_declare_target_link.
* trans-common.c (build_common_decl): Likewise.
* match.h (gfc_match_omp_target_enter_data,
gfc_match_omp_target_exit_data, gfc_match_omp_target_parallel,
gfc_match_omp_target_parallel_do,
gfc_match_omp_target_parallel_do_simd, gfc_match_omp_target_simd,
gfc_match_omp_taskloop, gfc_match_omp_taskloop_simd,
gfc_match_omp_end_critical, gfc_match_omp_ordered_depend): New
prototypes.
* parse.c (decode_omp_directive): Use gfc_match_omp_end_critical
instead of gfc_match_omp_critical for !$omp end critical.
Handle new OpenMP 4.5 constructs. If ordered directive has
depend clause as the first of the clauses, use
gfc_match_omp_ordered_depend and ST_OMP_ORDERED_DEPEND instead of
gfc_match_omp_ordered and ST_OMP_ORDERED.
(case_executable): Add ST_OMP_TARGET_ENTER_DATA,
ST_OMP_TARGET_EXIT_DATA and ST_OMP_ORDERED_DEPEND cases.
(case_exec_markers): Add ST_OMP_TARGET_PARALLEL,
ST_OMP_TARGET_PARALLEL_DO, ST_OMP_TARGET_PARALLEL_DO_SIMD,
ST_OMP_TARGET_SIMD, ST_OMP_TASKLOOP and ST_OMP_TASKLOOP_SIMD cases.
(gfc_ascii_statement): Handle new OpenMP 4.5 constructs.
(parse_omp_do): Handle ST_OMP_TARGET_PARALLEL_DO,
ST_OMP_TARGET_PARALLEL_DO_SIMD, ST_OMP_TASKLOOP and
ST_OMP_TASKLOOP_SIMD.
(parse_omp_structured_block): Handle EXEC_OMP_END_CRITICAL instead
of EXEC_OMP_CRITICAL, adjust for EXEC_OMP_CRITICAL having omp clauses
now.
(parse_executable): Handle ST_OMP_TARGET_PARALLEL,
ST_OMP_TARGET_PARALLEL_DO, ST_OMP_TARGET_PARALLEL_DO_SIMD,
ST_OMP_TASKLOOP and ST_OMP_TASKLOOP_SIMD.
gcc/testsuite/
* gfortran.dg/gomp/pr77516.f90: Add dg-warning.
* gfortran.dg/gomp/target1.f90: Remove ordered clause where it is
no longer allowed and corresponding ordered construct.
* gfortran.dg/gomp/linear-1.f90: New test.
* gfortran.dg/gomp/declare-simd-2.f90: New test.
* gfortran.dg/gomp/declare-target-1.f90: New test.
* gfortran.dg/gomp/declare-target-2.f90: New test.
libgomp/
* testsuite/libgomp.fortran/examples-4/declare_target-1.f90
(fib_wrapper): Add map(from: x) clause.
* testsuite/libgomp.fortran/examples-4/declare_target-2.f90
(e_53_2): Likewise.
* testsuite/libgomp.fortran/examples-4/declare_target-4.f90
(accum): Add map(tmp) clause.
* testsuite/libgomp.fortran/examples-4/declare_target-5.f90
(accum): Add map(tofrom: tmp) clause.
* testsuite/libgomp.fortran/examples-4/target_data-3.f90
(gramSchmidt): Likewise.
* testsuite/libgomp.fortran/examples-4/teams-2.f90 (dotprod): Add
map(tofrom: sum) clause.
* testsuite/libgomp.fortran/nestedfn5.f90 (foo): Add twice
map (alloc: a, l) clause. Add defaultmap(tofrom: scalar) clause.
* testsuite/libgomp.fortran/pr66199-2.f90: Adjust for linear clause
only allowed on the loop iterator.
* testsuite/libgomp.fortran/target4.f90 (foo): Add map(t) clause.
* testsuite/libgomp.fortran/taskloop2.f90: New test.
* testsuite/libgomp.fortran/taskloop4.f90: New test.
* testsuite/libgomp.fortran/doacross1.f90: New test.
* testsuite/libgomp.fortran/doacross3.f90: New test.
* testsuite/libgomp.fortran/taskloop1.f90: New test.
* testsuite/libgomp.fortran/taskloop3.f90: New test.
* testsuite/libgomp.fortran/doacross2.f90: New test.
* testsuite/libgomp.c/doacross-1.c (main): Add missing
#pragma omp atomic read.
* testsuite/libgomp.c/doacross-2.c (main): Likewise.
* testsuite/libgomp.c/doacross-3.c (main): Likewise.
From-SVN: r242037
2016-11-10 12:38:05 +01:00
|
|
|
|
* openmp.c (gfc_free_omp_clauses): Free critical_name, grainsize,
|
|
|
|
|
hint, num_tasks, priority and if_exprs.
|
|
|
|
|
(gfc_match_omp_to_link, gfc_match_omp_depend_sink): New functions.
|
|
|
|
|
(enum omp_mask1, enum omp_mask2): New enums.
|
|
|
|
|
Change all OMP_CLAUSE_* defines into enum values, and change their
|
|
|
|
|
values from ((uint64_t) 1 << bit) to just bit.
|
|
|
|
|
(omp_mask, omp_inv_mask): New classes. Add ctors and operators.
|
|
|
|
|
(gfc_match_omp_clauses): Change mask argument from uint64_t to
|
|
|
|
|
const omp_mask. Assert OMP_MASK1_LAST and OMP_MASK2_LAST are
|
|
|
|
|
at most 64. Move delete clause handling to where it
|
|
|
|
|
alphabetically belongs. Parse defaultmap, grainsize, hint,
|
|
|
|
|
is_device_ptr, nogroup, nowait, num_tasks, priority, simd, threads
|
|
|
|
|
and use_device_ptr clauses. Parse if clause modifier. Parse map
|
|
|
|
|
clause always modifier, and release and delete kinds. Parse ordered
|
|
|
|
|
clause with argument. Parse schedule clause modifiers. Differentiate
|
|
|
|
|
device clause parsing based on openacc flag. Guard link clause
|
|
|
|
|
parsing with openacc flag. Add support for parsing
|
|
|
|
|
linear clause modifiers. Parse depend(source) and depend(sink: ...).
|
|
|
|
|
Use gfc_match_omp_to_link for to and link clauses in declare target
|
|
|
|
|
construct.
|
|
|
|
|
(match_acc): Change mask type from uint64_t to const omp_mask.
|
|
|
|
|
(OMP_SINGLE_CLAUSES, OMP_ORDERED_CLAUSES,
|
|
|
|
|
OMP_DECLARE_TARGET_CLAUSES, OMP_TASKLOOP_CLAUSES,
|
|
|
|
|
OMP_TARGET_ENTER_DATA_CLAUSES, OMP_TARGET_EXIT_DATA_CLAUSES): Define.
|
|
|
|
|
(OACC_PARALLEL_CLAUSES, OACC_KERNELS_CLAUSES, OACC_DATA_CLAUSES,
|
|
|
|
|
OACC_LOOP_CLAUSES, OACC_HOST_DATA_CLAUSES, OACC_DECLARE_CLAUSES,
|
|
|
|
|
OACC_ENTER_DATA_CLAUSES, OACC_EXIT_DATA_CLAUSES, OACC_WAIT_CLAUSES,
|
|
|
|
|
OACC_ROUTINE_CLAUSES, OMP_PARALLEL_CLAUSES, OMP_DECLARE_SIMD_CLAUSES,
|
|
|
|
|
OMP_SECTIONS_CLAUSES, OMP_TEAMS_CLAUSES, OMP_DISTRIBUTE_CLAUSES):
|
|
|
|
|
Replace first or only OMP_CLAUSE_* value in bitset with
|
|
|
|
|
omp_mask (OMP_CLAUSE_*).
|
|
|
|
|
(OMP_DO_CLAUSES): Likewise. Add OMP_CLAUSE_LINEAR.
|
|
|
|
|
(OMP_SIMD_CLAUSES): Replace first or only OMP_CLAUSE_* value in
|
|
|
|
|
bitset with omp_mask (OMP_CLAUSE_*). Add OMP_CLAUSE_SIMDLEN.
|
|
|
|
|
(OACC_UPDATE_CLAUSES): Replace first or only OMP_CLAUSE_* value in
|
|
|
|
|
bitset with omp_mask (OMP_CLAUSE_*). Replace OMP_CLAUSE_OACC_DEVICE
|
|
|
|
|
with OMP_CLAUSE_DEVICE.
|
|
|
|
|
(OMP_TASK_CLAUSES): Replace first or only OMP_CLAUSE_* value in
|
|
|
|
|
bitset with omp_mask (OMP_CLAUSE_*). Add OMP_CLAUSE_PRIORITY.
|
|
|
|
|
(OMP_TARGET_CLAUSES): Replace first or only OMP_CLAUSE_* value in
|
|
|
|
|
bitset with omp_mask (OMP_CLAUSE_*). Add OMP_CLAUSE_DEPEND,
|
|
|
|
|
OMP_CLAUSE_NOWAIT, OMP_CLAUSE_PRIVATE, OMP_CLAUSE_FIRSTPRIVATE,
|
|
|
|
|
OMP_CLAUSE_DEFAULTMAP and OMP_CLAUSE_IS_DEVICE_PTR.
|
|
|
|
|
(OMP_TARGET_DATA_CLAUSES): Replace first or only OMP_CLAUSE_* value in
|
|
|
|
|
bitset with omp_mask (OMP_CLAUSE_*). Add OMP_CLAUSE_USE_DEVICE_PTR.
|
|
|
|
|
(OMP_TARGET_UPDATE_CLAUSES): Replace first or only OMP_CLAUSE_* value
|
|
|
|
|
in bitset with omp_mask (OMP_CLAUSE_*). Add OMP_CLAUSE_DEPEND and
|
|
|
|
|
OMP_CLAUSE_NOWAIT.
|
|
|
|
|
(match_omp): Change mask argument from unsigned int to
|
|
|
|
|
const omp_mask.
|
|
|
|
|
(gfc_match_omp_critical): Parse optional clauses and use omp_clauses
|
|
|
|
|
union member instead of omp_name.
|
|
|
|
|
(gfc_match_omp_end_critical): New function.
|
|
|
|
|
(gfc_match_omp_distribute_parallel_do): Remove ordered and linear
|
|
|
|
|
clauses from the mask.
|
|
|
|
|
(gfc_match_omp_distribute_parallel_do_simd): Use
|
|
|
|
|
& ~(omp_mask (OMP_CLAUSE_*)) instead of & ~OMP_CLAUSE_*.
|
|
|
|
|
(gfc_match_omp_target_teams_distribute_parallel_do_simd): Likewise.
|
|
|
|
|
(gfc_match_omp_teams_distribute_parallel_do_simd): Likewise.
|
|
|
|
|
(gfc_match_omp_do_simd): Likewise. Don't remove ordered clause from
|
|
|
|
|
the mask.
|
|
|
|
|
(gfc_match_omp_parallel_do_simd): Likewise.
|
|
|
|
|
(gfc_match_omp_target_teams_distribute_parallel_do): Likewise.
|
|
|
|
|
(gfc_match_omp_teams_distribute_parallel_do): Likewise.
|
|
|
|
|
(gfc_match_omp_declare_simd): If not using the form with
|
|
|
|
|
(proc-name), require space before first clause. Make (proc-name)
|
|
|
|
|
optional. If not present, set proc_name to NULL.
|
|
|
|
|
(gfc_match_omp_declare_target): Rewritten for OpenMP 4.5.
|
|
|
|
|
(gfc_match_omp_single): Use OMP_SINGLE_CLAUSES.
|
|
|
|
|
(gfc_match_omp_task, gfc_match_omp_taskwait, gfc_match_omp_taskyield):
|
|
|
|
|
Move around to where they belong alphabetically.
|
|
|
|
|
(gfc_match_omp_target_enter_data, gfc_match_omp_target_exit_data,
|
|
|
|
|
gfc_match_omp_target_parallel, gfc_match_omp_target_parallel_do,
|
|
|
|
|
gfc_match_omp_target_parallel_do_simd, gfc_match_omp_target_simd,
|
|
|
|
|
gfc_match_omp_taskloop, gfc_match_omp_taskloop_simd):
|
|
|
|
|
New functions.
|
|
|
|
|
(gfc_match_omp_ordered): Parse clauses.
|
|
|
|
|
(gfc_match_omp_ordered_depend): New function.
|
|
|
|
|
(gfc_match_omp_cancel, gfc_match_omp_end_single): Use
|
|
|
|
|
omp_mask (OMP_CLAUSE_*) instead of OMP_CLAUSE_*.
|
|
|
|
|
(resolve_oacc_scalar_int_expr): Renamed to ...
|
|
|
|
|
(resolve_scalar_int_expr): ... this. Fix up formatting.
|
|
|
|
|
(resolve_oacc_positive_int_expr): Renamed to ...
|
|
|
|
|
(resolve_positive_int_expr): ... this. Fix up formatting.
|
|
|
|
|
(resolve_nonnegative_int_expr): New function.
|
|
|
|
|
(resolve_omp_clauses): Adjust callers, use the above functions
|
|
|
|
|
even for OpenMP clauses, add handling of new OpenMP 4.5 clauses.
|
|
|
|
|
Require orderedc >= collapse if specified. Handle depend(sink:)
|
|
|
|
|
and depend(source) restrictions. Disallow linear clause when
|
|
|
|
|
orderedc is non-zero. Diagnose linear clause modifiers when not in
|
|
|
|
|
declare simd. Only check for integer type if ref modifier
|
|
|
|
|
is not used. Remove diagnostics for required VALUE attribute.
|
|
|
|
|
Diagnose VALUE attribute with ref or uval modifiers. Allow
|
|
|
|
|
non-constant linear-step, if it is a dummy argument alone and is
|
|
|
|
|
mentioned in uniform clause. Diagnose map kinds not allowed
|
|
|
|
|
for various constructs. Diagnose target {enter ,exit ,}data without
|
|
|
|
|
any map clauses. Add dummy OMP_LIST_IS_DEVICE_PTR and
|
|
|
|
|
OMP_LIST_USE_DEVICE_PTR cases.
|
|
|
|
|
(gfc_resolve_omp_do_blocks): Set omp_current_do_collapse to orderedc
|
|
|
|
|
if non-zero.
|
|
|
|
|
(gfc_resolve_omp_parallel_blocks): Handle new OpenMP 4.5 constructs,
|
|
|
|
|
replace underscores with spaces in a few construct names.
|
|
|
|
|
(resolve_omp_do): Set collapse to orderedc if non-zero. Handle new
|
|
|
|
|
OpenMP 4.5 constructs.
|
|
|
|
|
(resolve_oacc_loop_blocks): Call resolve_positive_int_expr instead
|
|
|
|
|
of resolve_oacc_positive_int_expr.
|
|
|
|
|
(gfc_resolve_omp_directive): Handle new OpenMP 4.5 constructs.
|
|
|
|
|
(gfc_resolve_omp_declare_simd): Allow ods->proc_name to be NULL.
|
|
|
|
|
* trans-openmp.c (gfc_omp_scalar_p): New function.
|
|
|
|
|
(doacross_steps): New variable.
|
|
|
|
|
(gfc_trans_omp_clauses): Handle new OpenMP 4.5 clauses and new clause
|
|
|
|
|
modifiers.
|
|
|
|
|
(gfc_trans_omp_critical): Adjust EXEC_OMP_CRITICAL handling.
|
|
|
|
|
(gfc_trans_omp_do): Handle doacross loops. Clear sched_simd flag.
|
|
|
|
|
Handle EXEC_OMP_TASKLOOP.
|
|
|
|
|
(gfc_trans_omp_ordered): Translate omp clauses, allow NULL
|
|
|
|
|
code->block.
|
|
|
|
|
(GFC_OMP_SPLIT_TASKLOOP, GFC_OMP_MASK_TASKLOOP): New enum constants.
|
|
|
|
|
(gfc_split_omp_clauses): Copy orderedc together with ordered. Change
|
|
|
|
|
firstprivate and lastprivate handling for OpenMP 4.5.
|
|
|
|
|
Handle EXEC_OMP_TARGET_SIMD, EXEC_OMP_TARGET_PARALLEL{,_DO,_DO_SIMD}
|
|
|
|
|
and EXEC_OMP_TASKLOOP{,_SIMD}. Add handling for new OpenMP 4.5
|
|
|
|
|
clauses and clause modifiers and handle if clause without/with
|
|
|
|
|
modifiers.
|
|
|
|
|
(gfc_trans_omp_teams): Add omp_clauses argument, add it to other
|
|
|
|
|
teams clauses. Don't wrap into OMP_TEAMS if -fopenmp-simd.
|
|
|
|
|
(gfc_trans_omp_target): For -fopenmp, translate num_teams and
|
|
|
|
|
thread_limit clauses on combined target teams early and pass to
|
|
|
|
|
gfc_trans_omp_teams. Set OMP_TARGET_COMBINED if needed.
|
|
|
|
|
Handle EXEC_OMP_TARGET_PARALLEL{,_DO,_DO_SIMD} and
|
|
|
|
|
EXEC_OMP_TARGET_SIMD.
|
|
|
|
|
(gfc_trans_omp_taskloop, gfc_trans_omp_target_enter_data,
|
|
|
|
|
gfc_trans_omp_target_exit_data): New functions.
|
|
|
|
|
(gfc_trans_omp_directive): Handle EXEC_OMP_TARGET_{ENTER,EXIT}_DATA
|
|
|
|
|
EXEC_OMP_TASKLOOP{,_SIMD}, EXEC_OMP_TARGET_PARALLEL{,_DO,_DO_SIMD}
|
|
|
|
|
and EXEC_OMP_TARGET_SIMD. Adjust gfc_trans_omp_teams caller.
|
|
|
|
|
* symbol.c (check_conflict): Handle omp_declare_target_link.
|
|
|
|
|
(gfc_add_omp_declare_target_link): New function.
|
|
|
|
|
(gfc_copy_attr): Copy omp_declare_target_link.
|
|
|
|
|
* dump-parse-tree.c (show_omp_namelist): Handle OMP_DEPEND_SINK_FIRST
|
|
|
|
|
depend_op. Print linear clause modifiers.
|
|
|
|
|
(show_omp_clauses): Adjust for OpenMP 4.5 clause changes.
|
|
|
|
|
(show_omp_node): Print clauses for EXEC_OMP_ORDERED. Allow NULL
|
|
|
|
|
c->block for EXEC_OMP_ORDERED. Formatting fixes. Adjust handling of
|
|
|
|
|
EXEC_OMP_CRITICAL, handle new OpenMP 4.5 constructs and some
|
|
|
|
|
forgotten OpenMP 4.0 constructs.
|
|
|
|
|
(show_code_node): Handle new OpenMP 4.5 constructs and some forgotten
|
|
|
|
|
OpenMP 4.0 constructs.
|
|
|
|
|
* gfortran.h (symbol_attribute): Add omp_declare_target_link bitfield.
|
|
|
|
|
(struct gfc_omp_namelist): Add u.common and u.linear_op fields.
|
|
|
|
|
(struct gfc_common_head): Change omp_declare_target into bitfield.
|
|
|
|
|
Add omp_declare_target_link bitfield.
|
|
|
|
|
(gfc_add_omp_declare_target_link): New prototype.
|
|
|
|
|
(enum gfc_statement): Add ST_OMP_TARGET_PARALLEL,
|
|
|
|
|
ST_OMP_END_TARGET_PARALLEL, ST_OMP_TARGET_PARALLEL_DO,
|
|
|
|
|
ST_OMP_END_TARGET_PARALLEL_DO, ST_OMP_TARGET_PARALLEL_DO_SIMD,
|
|
|
|
|
ST_OMP_END_TARGET_PARALLEL_DO_SIMD, ST_OMP_TARGET_ENTER_DATA,
|
|
|
|
|
ST_OMP_TARGET_EXIT_DATA, ST_OMP_TARGET_SIMD, ST_OMP_END_TARGET_SIMD,
|
|
|
|
|
ST_OMP_TASKLOOP, ST_OMP_END_TASKLOOP, ST_OMP_TASKLOOP_SIMD,
|
|
|
|
|
ST_OMP_END_TASKLOOP_SIMD and ST_OMP_ORDERED_DEPEND.
|
|
|
|
|
(enum gfc_omp_depend_op): Add OMP_DEPEND_SINK_FIRST and
|
|
|
|
|
OMP_DEPEND_SINK.
|
|
|
|
|
(enum gfc_omp_linear_op): New.
|
|
|
|
|
(struct gfc_omp_clauses): Add critical_name, depend_source,
|
|
|
|
|
orderedc, defaultmap, nogroup, sched_simd, sched_monotonic,
|
|
|
|
|
sched_nonmonotonic, simd, threads, grainsize, hint, num_tasks,
|
|
|
|
|
priority and if_exprs fields.
|
|
|
|
|
(enum gfc_exec_op): Add EXEC_OMP_END_CRITICAL,
|
|
|
|
|
EXEC_OMP_TARGET_ENTER_DATA, EXEC_OMP_TARGET_EXIT_DATA,
|
|
|
|
|
EXEC_OMP_TARGET_PARALLEL, EXEC_OMP_TARGET_PARALLEL_DO,
|
|
|
|
|
EXEC_OMP_TARGET_PARALLEL_DO_SIMD, EXEC_OMP_TARGET_SIMD,
|
|
|
|
|
EXEC_OMP_TASKLOOP, EXEC_OMP_TASKLOOP_SIMD.
|
|
|
|
|
(enum gfc_omp_map_op): Add OMP_MAP_RELEASE,
|
|
|
|
|
OMP_MAP_ALWAYS_TO, OMP_MAP_ALWAYS_FROM and OMP_MAP_ALWAYS_TOFROM.
|
|
|
|
|
(OMP_LIST_IS_DEVICE_PTR, OMP_LIST_USE_DEVICE_PTR): New.
|
|
|
|
|
(enum gfc_omp_if_kind): New.
|
|
|
|
|
* module.c (enum ab_attribute): Add AB_OMP_DECLARE_TARGET_LINK.
|
|
|
|
|
(attr_bits): Add AB_OMP_DECLARE_TARGET_LINK entry.
|
|
|
|
|
(mio_symbol_attribute): Save and restore omp_declare_target_link bit.
|
|
|
|
|
* trans.h (gfc_omp_scalar_p): New prototype.
|
|
|
|
|
* frontend-passes.c (gfc_code_walker): Handle new OpenMP 4.5
|
|
|
|
|
expressions.
|
|
|
|
|
* trans.c (trans_code): Handle new OpenMP 4.5 constructs.
|
|
|
|
|
* resolve.c (gfc_resolve_blocks): Likewise.
|
|
|
|
|
(gfc_resolve_code): Likewise.
|
|
|
|
|
* f95-lang.c (LANG_HOOKS_OMP_SCALAR_P): Redefine to gfc_omp_scalar_p.
|
|
|
|
|
(gfc_attribute_table): Add "omp declare target link".
|
|
|
|
|
* st.c (gfc_free_statement): Handle EXEC_OMP_END_CRITICAL like
|
|
|
|
|
EXEC_OMP_CRITICAL before, free clauses for EXEC_OMP_CRITICAL
|
|
|
|
|
and new OpenMP 4.5 constructs. Free omp clauses even for
|
|
|
|
|
EXEC_OMP_ORDERED.
|
|
|
|
|
* match.c (match_exit_cycle): Rename collapse variable to count,
|
|
|
|
|
set it to orderedc if non-zero, instead of collapse.
|
|
|
|
|
* trans-decl.c (add_attributes_to_decl): Add "omp declare target link"
|
|
|
|
|
instead of "omp declare target" for omp_declare_target_link.
|
|
|
|
|
* trans-common.c (build_common_decl): Likewise.
|
|
|
|
|
* match.h (gfc_match_omp_target_enter_data,
|
|
|
|
|
gfc_match_omp_target_exit_data, gfc_match_omp_target_parallel,
|
|
|
|
|
gfc_match_omp_target_parallel_do,
|
|
|
|
|
gfc_match_omp_target_parallel_do_simd, gfc_match_omp_target_simd,
|
|
|
|
|
gfc_match_omp_taskloop, gfc_match_omp_taskloop_simd,
|
|
|
|
|
gfc_match_omp_end_critical, gfc_match_omp_ordered_depend): New
|
|
|
|
|
prototypes.
|
|
|
|
|
* parse.c (decode_omp_directive): Use gfc_match_omp_end_critical
|
|
|
|
|
instead of gfc_match_omp_critical for !$omp end critical.
|
|
|
|
|
Handle new OpenMP 4.5 constructs. If ordered directive has
|
|
|
|
|
depend clause as the first of the clauses, use
|
|
|
|
|
gfc_match_omp_ordered_depend and ST_OMP_ORDERED_DEPEND instead of
|
|
|
|
|
gfc_match_omp_ordered and ST_OMP_ORDERED.
|
|
|
|
|
(case_executable): Add ST_OMP_TARGET_ENTER_DATA,
|
|
|
|
|
ST_OMP_TARGET_EXIT_DATA and ST_OMP_ORDERED_DEPEND cases.
|
|
|
|
|
(case_exec_markers): Add ST_OMP_TARGET_PARALLEL,
|
|
|
|
|
ST_OMP_TARGET_PARALLEL_DO, ST_OMP_TARGET_PARALLEL_DO_SIMD,
|
|
|
|
|
ST_OMP_TARGET_SIMD, ST_OMP_TASKLOOP and ST_OMP_TASKLOOP_SIMD cases.
|
|
|
|
|
(gfc_ascii_statement): Handle new OpenMP 4.5 constructs.
|
|
|
|
|
(parse_omp_do): Handle ST_OMP_TARGET_PARALLEL_DO,
|
|
|
|
|
ST_OMP_TARGET_PARALLEL_DO_SIMD, ST_OMP_TASKLOOP and
|
|
|
|
|
ST_OMP_TASKLOOP_SIMD.
|
|
|
|
|
(parse_omp_structured_block): Handle EXEC_OMP_END_CRITICAL instead
|
|
|
|
|
of EXEC_OMP_CRITICAL, adjust for EXEC_OMP_CRITICAL having omp clauses
|
|
|
|
|
now.
|
|
|
|
|
(parse_executable): Handle ST_OMP_TARGET_PARALLEL,
|
|
|
|
|
ST_OMP_TARGET_PARALLEL_DO, ST_OMP_TARGET_PARALLEL_DO_SIMD,
|
|
|
|
|
ST_OMP_TASKLOOP and ST_OMP_TASKLOOP_SIMD.
|
|
|
|
|
|
2016-11-09 21:33:24 +01:00
|
|
|
|
2016-11-09 Mikael Morin <mikael@gcc.gnu.org>
|
|
|
|
|
Janus Weil <janus@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
PR fortran/46459
|
|
|
|
|
* interface.c (compare_actual_formal): Add safety checks to avoid ICE.
|
|
|
|
|
|
2016-11-09 18:31:27 +01:00
|
|
|
|
2016-11-09 Fritz O. Reese <fritzoreese@gmail.com>
|
|
|
|
|
|
|
|
|
|
PR fortran/78259
|
|
|
|
|
* trans-expr.c (gfc_trans_subcomponent_assign): Guard against NULL
|
|
|
|
|
values.
|
|
|
|
|
|
2016-11-09 21:33:24 +01:00
|
|
|
|
2016-11-09 Steven G. Kargl <kargl@gcc.gnu.org>
|
2016-11-09 18:22:02 +01:00
|
|
|
|
Janus Weil <janus@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
PR fortran/60777
|
|
|
|
|
* expr.c (external_spec_function): Allow recursive specification
|
|
|
|
|
functions in F03.
|
|
|
|
|
|
2016-11-09 11:10:41 +01:00
|
|
|
|
2016-11-09 Paul Thomas <pault@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
* check.c (gfc_check_move_alloc): Prevent error that avoids
|
|
|
|
|
aliasing between to and from arguments from rejecting valid
|
|
|
|
|
code.
|
|
|
|
|
|
2016-11-09 10:22:52 +01:00
|
|
|
|
2016-11-09 Janus Weil <janus@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
PR fortran/71894
|
|
|
|
|
* class.c (gfc_add_component_ref): Add safety checks to avoid ICE.
|
|
|
|
|
|
2016-11-08 23:07:21 +01:00
|
|
|
|
2016-11-08 Janus Weil <janus@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
PR fortran/68440
|
|
|
|
|
* expr.c (check_alloc_comp_init): Loosen an assert.
|
|
|
|
|
* resolve.c (resolve_fl_parameter): Reject class parameters.
|
|
|
|
|
|
2016-11-08 17:10:56 +01:00
|
|
|
|
2016-11-08 Janus Weil <janus@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
PR fortran/77596
|
|
|
|
|
* expr.c (gfc_check_pointer_assign): Add special check for procedure-
|
|
|
|
|
pointer component with absent interface.
|
|
|
|
|
|
2016-11-07 20:33:27 +01:00
|
|
|
|
2016-11-07 Thomas Koenig <tkoenig@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
PR fortran/78226
|
|
|
|
|
* expr.c (gfc_generate_initializer): Add where to EXPR_NULL
|
|
|
|
|
statement.
|
|
|
|
|
* iresolve.c (gfc_resolve_extends_type_of): Add where to
|
|
|
|
|
both arguments of the function.
|
|
|
|
|
* resolve.c (resolve_select_type): Add where to the
|
|
|
|
|
second argument of the new statement.
|
|
|
|
|
|
2016-11-07 16:25:21 +01:00
|
|
|
|
2016-11-07 Thomas Koenig <tkoenig@gcc.gnu.org>
|
|
|
|
|
|
2016-11-07 16:29:20 +01:00
|
|
|
|
PR fortran/78226
|
2016-11-07 16:25:21 +01:00
|
|
|
|
* match.c (gfc_match_select_type): Add where for expr1.
|
|
|
|
|
* resolve.c (resolev_select_type): Add where for expr1 of new
|
|
|
|
|
statement.
|
|
|
|
|
|
2016-11-06 22:27:32 +01:00
|
|
|
|
2016-11-06 Thomas Koenig <tkoenig@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
PR fortran/78226
|
|
|
|
|
resolve.c (build_loc_call): Add location to return value.
|
|
|
|
|
|
2016-11-06 17:10:22 +01:00
|
|
|
|
2016-11-06 Andre Vehreschild <vehre@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
* expr.c (is_non_empty_structure_constructor): New function to detect
|
|
|
|
|
non-empty structure constructor.
|
|
|
|
|
(gfc_has_default_initializer): Analyse initializers.
|
|
|
|
|
* resolve.c (cond_init): Removed.
|
|
|
|
|
(resolve_allocate_expr): Removed dead code. Moved invariant code out
|
|
|
|
|
of the loop over all objects to allocate.
|
|
|
|
|
(resolve_allocate_deallocate): Added the invariant code remove from
|
|
|
|
|
resolve_allocate_expr.
|
|
|
|
|
* trans-array.c (gfc_array_allocate): Removed nullify of structure
|
|
|
|
|
components in favour of doing this in gfc_trans_allocate for both
|
|
|
|
|
scalars and arrays in the same place.
|
|
|
|
|
* trans-expr.c (gfc_trans_init_assign): Always using _vptr->copy for
|
|
|
|
|
class objects.
|
|
|
|
|
* trans-stmt.c (allocate_get_initializer): Get the initializer
|
|
|
|
|
expression for object allocated.
|
|
|
|
|
(gfc_trans_allocate): Nullify a derived type only, when no SOURCE=
|
|
|
|
|
or MOLD= is present preventing duplicate work. Moved the creation
|
|
|
|
|
of the init-expression here to prevent code for conditions that
|
|
|
|
|
can not occur on freshly allocated object, like checking for the need
|
|
|
|
|
to free allocatable components.
|
|
|
|
|
|
2016-11-06 13:27:51 +01:00
|
|
|
|
2016-11-06 Thomas Koenig <tkoenig@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
PR fortran/78221
|
|
|
|
|
* arith.c (gfc_complex2real): Change gfc_warning_now to
|
|
|
|
|
gfc_warning.
|
|
|
|
|
|
2016-11-05 15:25:25 +01:00
|
|
|
|
2016-11-05 Paul Thomas <pault@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
* check.c (gfc_check_move_alloc): Introduce error to prevent
|
|
|
|
|
aliasing between to and from arguments.
|
|
|
|
|
|
2016-11-05 11:35:23 +01:00
|
|
|
|
2016-11-05 Janus Weil <janus@gcc.gnu.org>
|
|
|
|
|
Manuel Lopez-Ibanez <manu@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
PR fortran/69495
|
|
|
|
|
* invoke.texi: Mention -Wpedantic as an alias of -pedantic.
|
|
|
|
|
* check.c (gfc_check_transfer): Mention responsible flag in warning
|
|
|
|
|
message.
|
|
|
|
|
* frontend-passes.c (do_warn_function_elimination): Ditto.
|
|
|
|
|
* resolve.c (resolve_elemental_actual): Ditto.
|
|
|
|
|
(resolve_operator): Ditto.
|
|
|
|
|
(warn_unused_fortran_label): Ditto.
|
|
|
|
|
* trans-common.c (translate_common): Ditto.
|
|
|
|
|
|
2016-11-05 08:11:24 +01:00
|
|
|
|
2016-11-05 Paul Thomas <pault@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
PR fortran/67564
|
|
|
|
|
* trans-expr.c (gfc_conv_class_to_class): Return _len component
|
|
|
|
|
of unlimited polymorphic entities.
|
|
|
|
|
|
|
|
|
|
2016-11-04 Paul Thomas <pault@gcc.gnu.org>
|
2016-11-04 20:23:44 +01:00
|
|
|
|
|
|
|
|
|
PR fortran/64933
|
|
|
|
|
* primary.c (gfc_match_varspec): If selector expression is
|
|
|
|
|
unambiguously an array, make sure that the associate name
|
|
|
|
|
is an array and has an array spec. Modify the original
|
|
|
|
|
condition for doing this to exclude character types.
|
|
|
|
|
|
2016-11-03 19:09:44 +01:00
|
|
|
|
2016-11-03 Fritz Reese <fritzoreese@gmail.com>
|
|
|
|
|
|
|
|
|
|
* gfortran.texi: Document.
|
|
|
|
|
* gfortran.h (gfc_dt): New field default_exp.
|
|
|
|
|
* primary.c (match_real_constant): Default exponent with -fdec.
|
|
|
|
|
* io.c (match_io): Set dt.default_exp with -fdec.
|
|
|
|
|
* ioparm.def (IOPARM_dt_default_exp): New.
|
|
|
|
|
* trans-io.c (build_dt): Set IOPARM_dt_default_exp with -fdec.
|
|
|
|
|
|
2016-11-03 17:00:58 +01:00
|
|
|
|
2016-11-03 Fritz O. Reese <fritzoreese@gmail.com>
|
|
|
|
|
|
|
|
|
|
* decl.c (gfc_match_parameter): Allow omitted '()' with -std=legacy.
|
|
|
|
|
* parse.c (decode_statement): Match "parameter" before assignments.
|
|
|
|
|
* gfortran.texi: Document.
|
|
|
|
|
|
2016-11-02 15:56:41 +01:00
|
|
|
|
2016-11-02 Fritz O. Reese <fritzoreese@gmail.com>
|
|
|
|
|
|
|
|
|
|
* lang.opt, invoke.texi: New argument -Wargument-mismatch.
|
|
|
|
|
* interface.c (compare_parameter, compare_actual_formal,
|
|
|
|
|
gfc_check_typebound_override, argument_rank_mismatch): Control argument
|
|
|
|
|
mismatch warnings with -Wargument-mismatch.
|
|
|
|
|
* resolve.c (resolve_structure_cons, resolve_global_procedure): Ditto.
|
|
|
|
|
|
2016-11-02 15:46:33 +01:00
|
|
|
|
2016-11-02 Fritz Reese <fritzoreese@gmail.com>
|
|
|
|
|
|
|
|
|
|
* gfortran.h (gfc_error): New declaration for gfc_error with 'opt'.
|
|
|
|
|
* error.c (gfc_error): Add optional 'opt' argument.
|
|
|
|
|
* error.c (gfc_notify_std): Call fully-qualified gfc_error.
|
|
|
|
|
|
2016-11-01 22:16:46 +01:00
|
|
|
|
2016-11-01 Thomas Koenig <tkoenig@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
PR fortran/78178
|
|
|
|
|
* match.c (match_simple_where): Fill in locus for assigment
|
|
|
|
|
in simple WHERE statement.
|
|
|
|
|
|
2016-11-01 17:18:18 +01:00
|
|
|
|
2016-11-01 Thomas Koenig <tkoenig@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
PR fortran/69544
|
|
|
|
|
* match.c (gfc_match_where): Fill in locus for assigment
|
|
|
|
|
in simple WHERE statement.
|
|
|
|
|
|
2016-10-31 20:59:04 +01:00
|
|
|
|
2016-10-31 Jerry DeLisle <jvdelisle@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
PR fortran/54679
|
|
|
|
|
* io.c (check_format): Adjust checks for FMT_L to treat a zero
|
|
|
|
|
width as an extension, giving warnings or error as appropriate.
|
|
|
|
|
Improve messages.
|
|
|
|
|
|
2016-10-31 20:35:47 +01:00
|
|
|
|
2016-10-31 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
* trans-types.c (gfc_get_array_descr_info): For -gdwarf-5 or
|
|
|
|
|
-gno-strict-dwarf, handle assumed rank arrays the way dwarf2out
|
|
|
|
|
expects.
|
|
|
|
|
|
2016-10-30 18:48:27 +01:00
|
|
|
|
2016-10-30 Thomas Koenig <tkoenig@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
PR fortran/67219
|
|
|
|
|
* arith.c (gfc_int2real): Change gfc_warning_now
|
|
|
|
|
to gfc_warning.
|
|
|
|
|
* primary.c (match_complex_constant): If there
|
|
|
|
|
is no comma, throw away any warning which might have
|
|
|
|
|
been issued by gfc_int2real.
|
|
|
|
|
|
2016-10-29 01:37:03 +02:00
|
|
|
|
2016-10-28 Steven G. Kargl <kargl@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
PR fortran/71891
|
|
|
|
|
* symbol.c (gfc_type_compatible): Fix typo.
|
|
|
|
|
|
2016-10-27 21:55:12 +02:00
|
|
|
|
2016-10-27 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR fortran/78026
|
|
|
|
|
* parse.c (decode_statement): Don't create namespace for possible
|
|
|
|
|
select type here and destroy it afterwards.
|
|
|
|
|
(parse_select_type_block): Set gfc_current_ns to new_st.ext.block.ns.
|
|
|
|
|
(parse_executable, gfc_parse_file): Formatting fixes.
|
|
|
|
|
* match.c (gfc_match_select_type): Create namespace for select type
|
|
|
|
|
here, only after matching select type. Formatting fixes. Free that
|
|
|
|
|
namespace if not returning MATCH_YES, after gfc_undo_symbols,
|
|
|
|
|
otherwise remember it in new_st.ext.block.ns and switch to parent
|
|
|
|
|
namespace anyway.
|
|
|
|
|
|
|
|
|
|
2016-10-27 Fritz Reese <fritzoreese@gmail.com>
|
2016-10-27 19:21:46 +02:00
|
|
|
|
|
|
|
|
|
* expr.c (generate_union_initializer, get_union_initializer): New.
|
|
|
|
|
* expr.c (component_initializer): Consider BT_UNION specially.
|
|
|
|
|
* resolve.c (resolve_structure_cons): Hack for BT_UNION.
|
|
|
|
|
* trans-expr.c (gfc_trans_subcomponent_assign): Ditto.
|
|
|
|
|
* trans-expr.c (gfc_conv_union_initializer): New.
|
|
|
|
|
* trans-expr.c (gfc_conv_structure): Replace UNION handling code with
|
|
|
|
|
new function gfc_conv_union_initializer.
|
|
|
|
|
|
2016-10-27 05:08:13 +02:00
|
|
|
|
2016-10-26 Steven G. Kargl <kargl@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
PR fortran/78092
|
|
|
|
|
* trans-intrinsic.c (gfc_conv_intrinsic_sizeof): Fix reference to an
|
|
|
|
|
array element of type CLASS.
|
|
|
|
|
|
2016-10-26 16:48:02 +02:00
|
|
|
|
2016-10-26 Paul Thomas <pault@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
PR fortran/78108
|
|
|
|
|
* resolve.c (resolve_typebound_intrinsic_op): For submodules
|
|
|
|
|
suppress the error and return if the same procedure symbol
|
|
|
|
|
is added more than once to the interface.
|
|
|
|
|
|
2016-10-27 21:55:12 +02:00
|
|
|
|
2016-10-26 Fritz Reese <fritzoreese@gmail.com>
|
New I/O specifiers CARRIAGECONTROL, READONLY, SHARE with -fdec.
gcc/fortran/
* gfortran.texi: Document.
* frontend-passes.c (gfc_code_walker): Add SHARE and CARRIAGECONTROL.
* io.c (gfc_free_open, gfc_resolve_open, gfc_match_open): Ditto.
* gfortran.h (gfc_open): Add SHARE, CARRIAGECONTROL, and READONLY.
* io.c (io_tag, match_open_element): Ditto.
* ioparm.def: Ditto.
* trans-io.c (gfc_trans_open): Ditto.
* io.c (match_dec_etag, match_dec_ftag): New functions.
libgfortran/io/
* libgfortran.h (IOPARM_OPEN_HAS_READONLY, IOPARM_OPEN_HAS_SHARE,
IOPARM_OPEN_HAS_CC): New for READONLY, SHARE, and CARRIAGECONTROL.
* close.c (st_close): Support READONLY.
* io.h (st_parameter_open, unit_flags): Support SHARE, CARRIAGECONTROL,
and READONLY.
* open.c (st_open): Ditto.
* transfer.c (data_transfer_init): Ditto.
* io.h (st_parameter_dt): New member 'cc' for CARRIAGECONTROL.
* write.c (write_check_cc, write_cc): New functions for CARRIAGECONTROL.
* transfer.c (next_record_cc): Ditto.
* file_pos.c (st_endfile): Support SHARE and CARRIAGECONTROL.
* io.h (st_parameter_inquire): Ditto.
* open.c (edit_modes, new_unit): Ditto.
* inquire.c (inquire_via_unit, inquire_via_filename): Ditto.
* io.h (unit_share, unit_cc, cc_fortran, IOPARM_INQUIRE_HAS_SHARE,
IOPARM_INQUIRE_HAS_CC): New for SHARE and CARRIAGECONTROL.
* open.c (share_opt, cc_opt): Ditto.
* read.c (read_x): Support CARRIAGECONTROL.
* transfer.c (read_sf, next_record_r, next_record_w): Ditto.
* write.c (list_formatted_write_scalar, write_a): Ditto.
* unix.h (close_share): New prototype.
* unix.c (open_share, close_share): New functions to handle SHARE.
* unix.c (open_external): Handle READONLY. Call open_share.
* close.c (st_close): Call close_share.
gcc/testsuite/
* dec_io_1.f90: New test.
* dec_io_2.f90: New test.
* dec_io_3.f90: New test.
* dec_io_4.f90: New test.
* dec_io_5.f90: New test.
* dec_io_6.f90: New test.
From-SVN: r241550
2016-10-26 14:11:44 +02:00
|
|
|
|
|
|
|
|
|
* frontend-passes.c (gfc_code_walker): Add SHARE and CARRIAGECONTROL.
|
|
|
|
|
* io.c (gfc_free_open, gfc_resolve_open, gfc_match_open): Ditto.
|
|
|
|
|
* gfortran.h (gfc_open): Add SHARE, CARRIAGECONTROL, and READONLY.
|
|
|
|
|
* io.c (io_tag, match_open_element): Ditto.
|
|
|
|
|
* ioparm.def: Ditto.
|
|
|
|
|
* trans-io.c (gfc_trans_open): Ditto.
|
|
|
|
|
* io.c (match_dec_etag, match_dec_ftag): New functions.
|
|
|
|
|
* gfortran.texi: Document.
|
|
|
|
|
|
2016-10-27 21:55:12 +02:00
|
|
|
|
2016-10-25 Fritz Reese <fritzoreese@gmail.com>
|
2016-10-25 20:27:51 +02:00
|
|
|
|
|
|
|
|
|
* gfortran.texi: Document.
|
|
|
|
|
* resolve.c (logical_to_bitwise): New function.
|
|
|
|
|
* resolve.c (resolve_operator): Wrap operands with logical_to_bitwise.
|
|
|
|
|
|
2016-10-25 19:01:58 +02:00
|
|
|
|
2016-10-25 Andre Vehreschild <vehre@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
PR fortran/72770
|
|
|
|
|
* class.c (find_intrinsic_vtab): No longer encode the string length
|
|
|
|
|
into vtype's name and use the char's kind for the size instead of
|
|
|
|
|
the string_length time the size.
|
|
|
|
|
* trans-array.c (gfc_conv_ss_descriptor): For deferred length char
|
|
|
|
|
arrays the dynamically sized type needs to be declared.
|
|
|
|
|
(build_class_array_ref): Address the i-th array element by multiplying
|
|
|
|
|
it with the _vptr->_size and the _len to make sure char arrays are
|
|
|
|
|
addressed correctly.
|
|
|
|
|
* trans-expr.c (gfc_conv_intrinsic_to_class): Made comment more
|
|
|
|
|
precise.
|
|
|
|
|
|
2016-10-25 17:47:12 +02:00
|
|
|
|
2016-10-25 Cesar Philippidis <cesar@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* intrinsic.texi (cosd): New mathop.
|
|
|
|
|
|
2016-10-27 21:55:12 +02:00
|
|
|
|
2016-10-25 Fritz Reese <fritzoreese@gmail.com>
|
2016-10-25 17:27:39 +02:00
|
|
|
|
|
2016-10-25 17:30:51 +02:00
|
|
|
|
* match.c (gfc_match_intrinsic_op): Match ".XOR." with -std=legacy.
|
|
|
|
|
* gfortran.texi: Document.
|
|
|
|
|
|
2016-10-27 21:55:12 +02:00
|
|
|
|
2016-10-25 Fritz Reese <fritzoreese@gmail.com>
|
2016-10-25 17:30:51 +02:00
|
|
|
|
|
|
|
|
|
* primary.c (gfc_match_rvalue): Match %LOC as LOC with -std=legacy.
|
|
|
|
|
* gfortran.texi: Document.
|
2016-10-25 17:27:39 +02:00
|
|
|
|
|
2016-10-27 21:55:12 +02:00
|
|
|
|
2016-10-25 Fritz Reese <fritzoreese@gmail.com>
|
2016-10-25 17:24:36 +02:00
|
|
|
|
|
|
|
|
|
* decl.c (gfc_match_type): New function.
|
|
|
|
|
* match.h (gfc_match_type): New function.
|
|
|
|
|
* match.c (gfc_match_if): Special case for one-line IFs.
|
|
|
|
|
* gfortran.texi: Update documentation.
|
|
|
|
|
* parse.c (decode_statement): Invoke gfc_match_type.
|
|
|
|
|
|
2016-10-27 21:55:12 +02:00
|
|
|
|
2016-10-25 Fritz Reese <fritzoreese@gmail.com>
|
2016-10-25 17:20:36 +02:00
|
|
|
|
|
|
|
|
|
* gfortran.texi: Document.
|
|
|
|
|
* gfortran.h (gfc_is_whitespace): Include form feed ('\f').
|
|
|
|
|
|
2016-10-27 21:55:12 +02:00
|
|
|
|
2016-10-25 Fritz Reese <fritzoreese@gmail.com>
|
2016-10-25 17:13:43 +02:00
|
|
|
|
|
|
|
|
|
* invoke.texi, gfortran.texi: Touch up documentation of -fdec.
|
|
|
|
|
* gfortran.h (gfc_option): Move flag_dec_structure out of gfc_option.
|
|
|
|
|
* decl.c (match_record_decl, gfc_match_decl_type_spec,
|
|
|
|
|
gfc_match_structure_decl): Ditto.
|
|
|
|
|
* match.c (gfc_match_member_sep): Ditto.
|
|
|
|
|
* options.c (gfc_handle_option): Ditto.
|
|
|
|
|
* lang.opt (fdec-structure): Use Fortran Var for flag_dec_structure.
|
|
|
|
|
* lang.opt (fdec): Use Fortran Var to create flag_dec.
|
|
|
|
|
* options.c (set_dec_flags): With -fdec enable -fcray-pointer,
|
|
|
|
|
-fd-lines-as-comments (default), -fdollar-ok, and legacy std flags.
|
2016-10-25 17:20:36 +02:00
|
|
|
|
|
2016-10-24 23:42:29 +02:00
|
|
|
|
2016-10-24 Jerry DeLisle <jvdelisle@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
PR fortran/77828
|
|
|
|
|
* ioparm.def: Reorder dt parameters to match libgfortran.
|
|
|
|
|
* libgfortran.h: Swap definitions of GFC_INTERNAL_UNIT and
|
|
|
|
|
GFC_INTERNAL_UNIT4.
|
|
|
|
|
|
2016-10-24 21:21:42 +02:00
|
|
|
|
2016-10-24 Steven G. Kargl <kargl@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
PR fortran/71895
|
|
|
|
|
* interface.c (gfc_compare_derived_types): Convert gcc_assert()
|
|
|
|
|
to a gfc_internal_error() to prevent an ICE.
|
|
|
|
|
|
trans-intrinsic.c (gfc_conv_intrinsic_minmax): Use VAR_P (x) instead of TREE_CODE (x) == VAR_DECL.
* trans-intrinsic.c (gfc_conv_intrinsic_minmax): Use VAR_P (x)
instead of TREE_CODE (x) == VAR_DECL.
* trans-expr.c (gfc_class_vptr_get, gfc_class_len_get,
gfc_class_len_or_zero_get, gfc_get_vptr_from_expr,
gfc_conv_string_length, conv_base_obj_fcn_val,
gfc_conv_procedure_call, gfc_trans_assignment_1): Likewise.
* trans-openmp.c (gfc_omp_predetermined_sharing,
gfc_omp_disregard_value_expr, gfc_omp_private_debug_clause,
gfc_trans_omp_atomic, gfc_trans_omp_do): Likewise.
* trans-io.c (nml_get_addr_expr): Likewise.
* trans-decl.c (gfc_finish_decl, gfc_build_qualified_array,
gfc_get_symbol_decl, gfc_get_fake_result_decl,
gfc_trans_deferred_vars, gfc_trans_use_stmts,
generate_local_decl): Likewise.
* trans-array.c (trans_array_constructor, trans_array_bound_check,
build_class_array_ref, gfc_array_init_size,
gfc_trans_auto_array_allocation, gfc_trans_g77_array,
gfc_trans_dummy_array_bias, gfc_alloc_allocatable_for_assignment,
gfc_trans_deferred_array): Likewise.
* trans.c (gfc_build_array_ref): Likewise. Use
VAR_OR_FUNCTION_DECL_P (x) instead of TREE_CODE (x) == VAR_DECL
|| TREE_CODE (x) == FUNCTION_DECL.
From-SVN: r241482
2016-10-24 18:05:09 +02:00
|
|
|
|
2016-10-24 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
* trans-intrinsic.c (gfc_conv_intrinsic_minmax): Use VAR_P (x)
|
|
|
|
|
instead of TREE_CODE (x) == VAR_DECL.
|
|
|
|
|
* trans-expr.c (gfc_class_vptr_get, gfc_class_len_get,
|
|
|
|
|
gfc_class_len_or_zero_get, gfc_get_vptr_from_expr,
|
|
|
|
|
gfc_conv_string_length, conv_base_obj_fcn_val,
|
|
|
|
|
gfc_conv_procedure_call, gfc_trans_assignment_1): Likewise.
|
|
|
|
|
* trans-openmp.c (gfc_omp_predetermined_sharing,
|
|
|
|
|
gfc_omp_disregard_value_expr, gfc_omp_private_debug_clause,
|
|
|
|
|
gfc_trans_omp_atomic, gfc_trans_omp_do): Likewise.
|
|
|
|
|
* trans-io.c (nml_get_addr_expr): Likewise.
|
|
|
|
|
* trans-decl.c (gfc_finish_decl, gfc_build_qualified_array,
|
|
|
|
|
gfc_get_symbol_decl, gfc_get_fake_result_decl,
|
|
|
|
|
gfc_trans_deferred_vars, gfc_trans_use_stmts,
|
|
|
|
|
generate_local_decl): Likewise.
|
|
|
|
|
* trans-array.c (trans_array_constructor, trans_array_bound_check,
|
|
|
|
|
build_class_array_ref, gfc_array_init_size,
|
|
|
|
|
gfc_trans_auto_array_allocation, gfc_trans_g77_array,
|
|
|
|
|
gfc_trans_dummy_array_bias, gfc_alloc_allocatable_for_assignment,
|
|
|
|
|
gfc_trans_deferred_array): Likewise.
|
|
|
|
|
* trans.c (gfc_build_array_ref): Likewise. Use
|
|
|
|
|
VAR_OR_FUNCTION_DECL_P (x) instead of TREE_CODE (x) == VAR_DECL
|
|
|
|
|
|| TREE_CODE (x) == FUNCTION_DECL.
|
|
|
|
|
|
2016-10-23 23:26:44 +02:00
|
|
|
|
2016-10-23 Steven G. Kargl <kargl@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
PR fortran/77763
|
|
|
|
|
* parse.c (parse_spec): Allow STRUCTURE in BLOCK DATA. Sort
|
|
|
|
|
case labels.
|
|
|
|
|
|
2016-10-23 20:12:28 +02:00
|
|
|
|
2016-10-23 Steven G. Kargl <kargl@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
PR fortran/54730
|
|
|
|
|
PR fortran/78033
|
|
|
|
|
* array.c (gfc_match_array_constructor): Remove checkpointing
|
|
|
|
|
introduced in r196416 (original fix for PR fortran/54730). Move
|
|
|
|
|
initialization to top of function.
|
|
|
|
|
* match.c (gfc_match_type_spec): Special case matching for REAL.
|
|
|
|
|
|
2016-10-23 20:09:14 +02:00
|
|
|
|
2016-10-23 Paul Thomas <pault@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
PR fortran/69834
|
|
|
|
|
* class.c (gfc_find_derived_vtab): Obtain the gsymbol for the
|
|
|
|
|
derived type's module. If the gsymbol is present and the top
|
|
|
|
|
level namespace corresponds to a module, use the gsymbol name
|
|
|
|
|
space. In the search to see if the vtable exists, try the gsym
|
|
|
|
|
namespace first.
|
|
|
|
|
* dump-parse-tree (show_code_node): Modify select case dump to
|
|
|
|
|
show select type construct.
|
|
|
|
|
* resolve.c (build_loc_call): New function.
|
|
|
|
|
(resolve_select_type): Add check for repeated type is cases.
|
|
|
|
|
Retain selector expression and use it later instead of expr1.
|
|
|
|
|
Exclude deferred length TYPE IS cases and emit error message.
|
|
|
|
|
Store the address for the vtable in the 'low' expression and
|
|
|
|
|
the hash value in the 'high' expression, for each case. Do not
|
|
|
|
|
call resolve_select.
|
|
|
|
|
* trans.c(trans_code) : Call gfc_trans_select_type.
|
|
|
|
|
* trans-stmt.c (gfc_trans_select_type_cases): New function.
|
|
|
|
|
(gfc_trans_select_type): New function.
|
|
|
|
|
* trans-stmt.h : Add prototype for gfc_trans_select_type.
|
|
|
|
|
|
2016-10-22 16:04:46 +02:00
|
|
|
|
2016-10-22 Thomas Koenig <tkoenig@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
PR fortran/78021
|
|
|
|
|
* gfc_compare_functions: Strings with different lengths in
|
|
|
|
|
argument lists compare unequal.
|
|
|
|
|
|
2016-10-22 14:33:38 +02:00
|
|
|
|
2016-10-22 Andre Vehreschild <vehre@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
PR fortran/43366
|
|
|
|
|
PR fortran/51864
|
|
|
|
|
PR fortran/57117
|
|
|
|
|
PR fortran/61337
|
|
|
|
|
PR fortran/61376
|
|
|
|
|
* primary.c (gfc_expr_attr): For transformational functions on classes
|
|
|
|
|
get the attrs from the class argument.
|
|
|
|
|
* resolve.c (resolve_ordinary_assign): Remove error message due to
|
|
|
|
|
feature implementation. Rewrite POINTER_ASSIGNS to ordinary ones when
|
|
|
|
|
the right-hand side is scalar class object (with some restrictions).
|
|
|
|
|
* trans-array.c (trans_array_constructor): Create the temporary from
|
|
|
|
|
class' inner type, i.e., the derived type.
|
|
|
|
|
(build_class_array_ref): Add support for class array's storage of the
|
|
|
|
|
class object or the array descriptor in the decl saved descriptor.
|
|
|
|
|
(gfc_conv_expr_descriptor): When creating temporaries for class objects
|
|
|
|
|
add the class object's handle into the decl saved descriptor.
|
|
|
|
|
(structure_alloc_comps): Use the common way to get the _data component.
|
|
|
|
|
(gfc_is_reallocatable_lhs): Add notion of allocatable class objects.
|
|
|
|
|
* trans-expr.c (gfc_find_and_cut_at_last_class_ref): Remove the only ref
|
|
|
|
|
only when the expression's type is BT_CLASS.
|
|
|
|
|
(gfc_trans_class_init_assign): Correctly handle class arrays.
|
|
|
|
|
(gfc_trans_class_assign): Joined into gfc_trans_assignment_1.
|
|
|
|
|
(gfc_conv_procedure_call): Support for class types as arguments.
|
|
|
|
|
(trans_get_upoly_len): For unlimited polymorphics retrieve the _len
|
|
|
|
|
component's tree.
|
|
|
|
|
(trans_class_vptr_len_assignment): Catch all ways to assign the _vptr
|
|
|
|
|
and _len components of a class object correctly.
|
|
|
|
|
(pointer_assignment_is_proc_pointer): Identify assignments of
|
|
|
|
|
procedure pointers.
|
|
|
|
|
(gfc_trans_pointer_assignment): Enhance support for class object pointer
|
|
|
|
|
assignments.
|
|
|
|
|
(gfc_trans_scalar_assign): Removed assert.
|
|
|
|
|
(trans_class_assignment): Assign to a class object.
|
|
|
|
|
(gfc_trans_assignment_1): Treat class objects correctly.
|
|
|
|
|
(gfc_trans_assignment): Propagate flags to trans_assignment_1.
|
|
|
|
|
* trans-stmt.c (gfc_trans_allocate): Use gfc_trans_assignment now
|
|
|
|
|
instead of copy_class_to_class.
|
|
|
|
|
* trans-stmt.h: Function prototype removed.
|
|
|
|
|
* trans.c (trans_code): Less special casing for class objects.
|
|
|
|
|
* trans.h: Added flags to gfc_trans_assignment () prototype.
|
|
|
|
|
|
2016-10-21 14:50:56 +02:00
|
|
|
|
2016-10-21 Paul Thomas <pault@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
PR fortran/69566
|
|
|
|
|
* resolve.c (fixup_array_ref): New function.
|
|
|
|
|
(resolve_select_type): Gather up the rank and array reference,
|
|
|
|
|
if any, from the selector. Fix up the 'associate name' and the
|
|
|
|
|
'associate entities' as necessary.
|
|
|
|
|
* trans-expr.c (gfc_conv_class_to_class): If the symbol backend
|
|
|
|
|
decl is a FUNCTION_DECL, use the 'fake_result_decl' instead.
|
|
|
|
|
|
2016-10-21 01:55:19 +02:00
|
|
|
|
2016-10-20 Steven G. Kargl <kargl@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
* array.c (gfc_match_array_constructor): Remove set, but unused
|
|
|
|
|
variable.
|
|
|
|
|
|
2016-10-20 12:50:27 +02:00
|
|
|
|
2016-10-20 Andre Vehreschild <vehre@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
* class.c (gfc_build_class_symbol): Set the kind of _len to
|
|
|
|
|
gfc_charlen_int_kind to catch changes of the charlen kind.
|
|
|
|
|
|
2016-10-17 21:57:12 +02:00
|
|
|
|
2016-10-17 Steven G. Kargl <kargl@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
PR fortran/77978
|
|
|
|
|
* match.c (gfc_match_stopcode): Fix error reporting for several
|
|
|
|
|
deficiencies in matching stop-codes.
|
|
|
|
|
|
2016-10-17 19:52:05 +02:00
|
|
|
|
2016-10-17 Paul Thomas <pault@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
PR fortran/61420
|
|
|
|
|
PR fortran/78013
|
|
|
|
|
* resolve.c (resolve_variable): Obtain the typespec for a
|
|
|
|
|
variable expression, when the variable is a function result
|
|
|
|
|
that is a procedure pointer.
|
|
|
|
|
|
2016-10-16 18:29:46 +02:00
|
|
|
|
2016-10-16 Jerry DeLisle <jvdelisle@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
PR fortran/48298
|
|
|
|
|
* trans-io.c (transfer_expr): Ignore dtio procedures for inquire
|
|
|
|
|
with iolength.
|
|
|
|
|
|
2016-10-15 20:38:54 +02:00
|
|
|
|
2016-10-15 Jerry DeLisle <jvdelisle@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
PR fortran/77972
|
|
|
|
|
* scanner.c (gfc_next_char_literal): If nextc is null do not
|
|
|
|
|
decrement the pointer and call the diagnostics.
|
|
|
|
|
|
2016-10-14 10:52:10 +02:00
|
|
|
|
2016-10-14 Andre Vehreschild <vehre@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
* resolve.c (resolve_symbol): Add unimplemented message for
|
|
|
|
|
polymorphic types with allocatable/pointer components and coarray=lib.
|
|
|
|
|
|
Move MEMMODEL_* from coretypes.h to memmodel.h
2016-10-13 Thomas Preud'homme <thomas.preudhomme@arm.com>
gcc/
* coretypes.h: Move MEMMODEL_* macros and enum memmodel definition
into ...
* memmodel.h: This file.
* alias.c, asan.c, auto-inc-dec.c, bb-reorder.c, bt-load.c,
caller-save.c, calls.c, ccmp.c, cfgbuild.c, cfgcleanup.c,
cfgexpand.c, cfgloopanal.c, cfgrtl.c, cilk-common.c, combine.c,
combine-stack-adj.c, common/config/aarch64/aarch64-common.c,
common/config/arm/arm-common.c, common/config/bfin/bfin-common.c,
common/config/c6x/c6x-common.c, common/config/i386/i386-common.c,
common/config/ia64/ia64-common.c, common/config/nvptx/nvptx-common.c,
compare-elim.c, config/aarch64/aarch64-builtins.c,
config/aarch64/aarch64-c.c, config/aarch64/cortex-a57-fma-steering.c,
config/arc/arc.c, config/arc/arc-c.c, config/arm/arm-builtins.c,
config/arm/arm-c.c, config/avr/avr.c, config/avr/avr-c.c,
config/avr/avr-log.c, config/bfin/bfin.c, config/c6x/c6x.c,
config/cr16/cr16.c, config/cris/cris.c, config/darwin-c.c,
config/darwin.c, config/epiphany/epiphany.c,
config/epiphany/mode-switch-use.c,
config/epiphany/resolve-sw-modes.c, config/fr30/fr30.c,
config/frv/frv.c, config/ft32/ft32.c, config/h8300/h8300.c,
config/i386/i386-c.c, config/i386/winnt.c, config/iq2000/iq2000.c,
config/lm32/lm32.c, config/m32c/m32c.c, config/m32r/m32r.c,
config/m68k/m68k.c, config/mcore/mcore.c,
config/microblaze/microblaze.c, config/mmix/mmix.c,
config/mn10300/mn10300.c, config/moxie/moxie.c,
config/msp430/msp430.c, config/nds32/nds32-cost.c,
config/nds32/nds32-intrinsic.c, config/nds32/nds32-md-auxiliary.c,
config/nds32/nds32-memory-manipulation.c,
config/nds32/nds32-predicates.c, config/nds32/nds32.c,
config/nios2/nios2.c, config/nvptx/nvptx.c, config/pa/pa.c,
config/pdp11/pdp11.c, config/rl78/rl78.c, config/rs6000/rs6000-c.c,
config/rx/rx.c, config/s390/s390-c.c, config/s390/s390.c,
config/sh/sh.c, config/sh/sh-c.c, config/sh/sh-mem.cc,
config/sh/sh_treg_combine.cc, config/sol2.c, config/spu/spu.c,
config/stormy16/stormy16.c, config/tilegx/tilegx.c,
config/tilepro/tilepro.c, config/v850/v850.c, config/vax/vax.c,
config/visium/visium.c, config/vms/vms-c.c, config/xtensa/xtensa.c,
coverage.c, cppbuiltin.c, cprop.c, cse.c, cselib.c, dbxout.c, dce.c,
df-core.c, df-problems.c, df-scan.c, dojump.c, dse.c, dwarf2asm.c,
dwarf2cfi.c, dwarf2out.c, emit-rtl.c, except.c, explow.c, expmed.c,
expr.c, final.c, fold-const.c, function.c, fwprop.c, gcse.c,
ggc-page.c, haifa-sched.c, hsa-brig.c, hsa-gen.c, hw-doloop.c,
ifcvt.c, init-regs.c, internal-fn.c, ira-build.c, ira-color.c,
ira-conflicts.c, ira-costs.c, ira-emit.c, ira-lives.c, ira.c, jump.c,
loop-doloop.c, loop-invariant.c, loop-iv.c, loop-unroll.c,
lower-subreg.c, lra.c, lra-assigns.c, lra-coalesce.c,
lra-constraints.c, lra-eliminations.c, lra-lives.c, lra-remat.c,
lra-spills.c, mode-switching.c, modulo-sched.c, omp-low.c, passes.c,
postreload-gcse.c, postreload.c, predict.c, print-rtl-function.c,
recog.c, ree.c, reg-stack.c, regcprop.c, reginfo.c, regrename.c,
reload.c, reload1.c, reorg.c, resource.c, rtl-chkp.c, rtl-tests.c,
rtlanal.c, rtlhooks.c, sched-deps.c, sched-rgn.c, sdbout.c,
sel-sched-ir.c, sel-sched.c, shrink-wrap.c, simplify-rtx.c,
stack-ptr-mod.c, stmt.c, stor-layout.c, target-globals.c,
targhooks.c, toplev.c, tree-nested.c, tree-outof-ssa.c,
tree-profile.c, tree-ssa-coalesce.c, tree-ssa-ifcombine.c,
tree-ssa-loop-ivopts.c, tree-ssa-loop.c, tree-ssa-reassoc.c,
tree-ssa-sccvn.c, tree-vect-data-refs.c, ubsan.c, valtrack.c,
var-tracking.c, varasm.c: Include memmodel.h.
* genattrtab.c (write_header): Include memmodel.h in generated file.
* genautomata.c (main): Likewise.
* gengtype.c (open_base_files): Likewise.
* genopinit.c (main): Likewise.
* genconditions.c (write_header): Include memmodel.h earlier in
generated file.
* genemit.c (main): Likewise.
* genoutput.c (output_prologue): Likewise.
* genpeep.c (main): Likewise.
* genpreds.c (write_insn_preds_c): Likewise.
* genrecog.c (write_header): Likewise.
* Makefile.in (PLUGIN_HEADERS): Include memmodel.h
gcc/ada/
* gcc-interface/utils2.c: Include memmodel.h.
gcc/c-family/
* c-cppbuiltin.c: Include memmodel.h.
* c-opts.c: Likewise.
* c-pragma.c: Likewise.
* c-warn.c: Likewise.
gcc/c/
* c-typeck.c: Include memmodel.h.
gcc/cp/
* decl2.c: Include memmodel.h.
* rtti.c: Likewise.
gcc/fortran/
* trans-intrinsic.c: Include memmodel.h.
gcc/go/
* go-backend.c: Include memmodel.h.
libgcc/
* libgcov-profiler.c: Replace MEMMODEL_* macros by their __ATOMIC_*
equivalent.
* config/tilepro/atomic.c: Likewise and stop casting model to
enum memmodel.
From-SVN: r241121
2016-10-13 16:17:52 +02:00
|
|
|
|
2016-10-13 Thomas Preud'homme <thomas.preudhomme@arm.com>
|
|
|
|
|
|
|
|
|
|
* trans-intrinsic.c: Include memmodel.h.
|
|
|
|
|
|
2016-10-13 10:51:21 +02:00
|
|
|
|
2016-10-13 Andre Vehreschild <vehre@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
PR fortran/72832
|
|
|
|
|
* trans-expr.c (gfc_copy_class_to_class): Add generation of
|
|
|
|
|
runtime array bounds check.
|
|
|
|
|
* trans-intrinsic.c (gfc_conv_intrinsic_size): Add a crutch to
|
|
|
|
|
get the descriptor of a function returning a class object.
|
|
|
|
|
* trans-stmt.c (gfc_trans_allocate): Use the array spec on the
|
|
|
|
|
array to allocate instead of the array spec from source=.
|
|
|
|
|
|
2016-10-12 18:39:01 +02:00
|
|
|
|
2016-10-12 Andre Vehreschild <vehre@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
* trans-expr.c (gfc_find_and_cut_at_last_class_ref): Fixed style.
|
|
|
|
|
(gfc_trans_class_init_assign): Same.
|
|
|
|
|
(gfc_conv_procedure_call): Same.
|
|
|
|
|
(gfc_trans_assignment_1): Same.
|
|
|
|
|
* trans-stmt.c (gfc_trans_allocate): Same.
|
|
|
|
|
|
2016-10-11 23:45:34 +02:00
|
|
|
|
2016-10-11 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
* iresolve.c (is_trig_resolved, resolve_trig_call): Formatting fixes.
|
|
|
|
|
* simplify.c (simplify_trig_call, degrees_f, radians_f,
|
|
|
|
|
gfc_simplify_atrigd, gfc_simplify_cotan): Likewise.
|
|
|
|
|
|
2016-10-11 23:03:04 +02:00
|
|
|
|
2016-10-11 Steven G. Kargl <kargl@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
PR fortran/77942
|
|
|
|
|
* simplify.c (gfc_simplify_cshift): Check for zero.
|
|
|
|
|
|
2016-10-11 20:44:05 +02:00
|
|
|
|
2016-10-11 Fritz Reese <fritzoreese@gmail.com>
|
|
|
|
|
|
|
|
|
|
* iresolve.c (get_radians, get_degrees): Fix sloppy commit.
|
|
|
|
|
* simplify.c (degrees_f, radians_f): Ditto.
|
|
|
|
|
|
2016-10-11 20:31:50 +02:00
|
|
|
|
2016-10-11 Jerry DeLisle <jvdelisle@gcc.gnu.org>
|
|
|
|
|
|
2016-10-11 23:03:04 +02:00
|
|
|
|
* simplify.c (radians_f): Fix mpfr_mod.
|
2016-10-11 20:31:50 +02:00
|
|
|
|
* ireolce.c (get_degrees): Declare tmp.
|
|
|
|
|
|
New flag -fdec-math for COTAN and degree trig intrinsics.
2016-10-11 Fritz Reese <fritzoreese@gmail.com>
New flag -fdec-math for COTAN and degree trig intrinsics.
gcc/fortran/
* lang.opt: New flag -fdec-math.
* options.c (set_dec_flags): Enable with -fdec.
* invoke.texi, gfortran.texi, intrinsic.texi: Update documentation.
* intrinsics.c (add_functions, do_simplify): New intrinsics
with -fdec-math.
* gfortran.h (gfc_isym_id): New isym GFC_ISYM_COTAN.
* gfortran.h (gfc_resolve_atan2d, gfc_resolve_cotan,
gfc_resolve_trigd, gfc_resolve_atrigd): New prototypes.
* iresolve.c (resolve_trig_call, get_degrees, get_radians,
is_trig_resolved, gfc_resolve_cotan, gfc_resolve_trigd,
gfc_resolve_atrigd, gfc_resolve_atan2d): New functions.
* intrinsics.h (gfc_simplify_atan2d, gfc_simplify_atrigd,
gfc_simplify_cotan, gfc_simplify_trigd): New prototypes.
* simplify.c (simplify_trig_call, degrees_f, radians_f,
gfc_simplify_cotan, gfc_simplify_trigd, gfc_simplify_atrigd,
gfc_simplify_atan2d): New functions.
gcc/testsuite/gfortran.dg/
* dec_math.f90: New testsuite.
From-SVN: r240989
2016-10-11 13:21:07 +02:00
|
|
|
|
2016-10-11 Fritz Reese <fritzoreese@gmail.com>
|
|
|
|
|
|
|
|
|
|
* lang.opt: New flag -fdec-math.
|
|
|
|
|
* options.c (set_dec_flags): Enable with -fdec.
|
|
|
|
|
* invoke.texi, gfortran.texi, intrinsic.texi: Update documentation.
|
|
|
|
|
* intrinsics.c (add_functions, do_simplify): New intrinsics
|
|
|
|
|
with -fdec-math.
|
|
|
|
|
* gfortran.h (gfc_isym_id): New isym GFC_ISYM_COTAN.
|
|
|
|
|
* gfortran.h (gfc_resolve_atan2d, gfc_resolve_cotan,
|
|
|
|
|
gfc_resolve_trigd, gfc_resolve_atrigd): New prototypes.
|
|
|
|
|
* iresolve.c (resolve_trig_call, get_degrees, get_radians,
|
|
|
|
|
is_trig_resolved, gfc_resolve_cotan, gfc_resolve_trigd,
|
|
|
|
|
gfc_resolve_atrigd, gfc_resolve_atan2d): New functions.
|
|
|
|
|
* intrinsics.h (gfc_simplify_atan2d, gfc_simplify_atrigd,
|
|
|
|
|
gfc_simplify_cotan, gfc_simplify_trigd): New prototypes.
|
|
|
|
|
* simplify.c (simplify_trig_call, degrees_f, radians_f,
|
|
|
|
|
gfc_simplify_cotan, gfc_simplify_trigd, gfc_simplify_atrigd,
|
|
|
|
|
gfc_simplify_atan2d): New functions.
|
|
|
|
|
|
2016-10-10 16:54:26 +02:00
|
|
|
|
2016-10-10 Thomas Koenig <tkoenig@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
PR fortran/77915
|
|
|
|
|
* frontend-passes.c (inline_matmul_assign): Return early if
|
|
|
|
|
inside a FORALL statement.
|
|
|
|
|
|
2016-10-07 23:25:16 +02:00
|
|
|
|
2016-10-07 Fritz Reese <fritzoreese@gmail.com>
|
|
|
|
|
|
|
|
|
|
* interface.c (compare_components): Check charlen for BT_CHAR.
|
|
|
|
|
|
2016-10-07 20:18:03 +02:00
|
|
|
|
2016-10-07 Steven G. Kargl <kargl@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
PR fortran/77406
|
|
|
|
|
* interface.c (gfc_compare_interfaces): Fix detection of ambiguous
|
|
|
|
|
interface involving alternate return.
|
|
|
|
|
(check_interface1): Improve error message and loci.
|
|
|
|
|
|
2016-10-07 04:24:40 +02:00
|
|
|
|
2016-10-06 Louis Krupp <louis.krupp@zoho.com>
|
|
|
|
|
|
|
|
|
|
PR fortran/69955
|
|
|
|
|
* trans-array.c (gfc_conv_expr_descriptor): Don't allocate
|
|
|
|
|
components if it's not necessary.
|
|
|
|
|
|
2016-10-07 04:02:13 +02:00
|
|
|
|
2016-10-05 Louis Krupp <louis.krupp@zoho.com>
|
|
|
|
|
|
|
|
|
|
PR fortran/57910
|
|
|
|
|
* trans-expr.c (gfc_add_interface_mapping): Don't try to
|
2016-10-07 04:24:40 +02:00
|
|
|
|
dereference call-by-value scalar argument.
|
2016-10-07 04:02:13 +02:00
|
|
|
|
|
2016-10-05 23:14:14 +02:00
|
|
|
|
2016-10-05 Steven G. Kargl <kargls@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
PR fortran/58991
|
|
|
|
|
PR fortran/58992
|
|
|
|
|
* resolve.c (resolve_assoc_var): Fix CHARACTER type-spec for a
|
|
|
|
|
selector in ASSOCIATE.
|
|
|
|
|
(resolve_fl_variable): Skip checks for an ASSOCIATE variable.
|
|
|
|
|
|
2016-10-05 22:24:48 +02:00
|
|
|
|
2016-10-05 Fritz Reese <fritzoreese@gmail.com>
|
|
|
|
|
|
|
|
|
|
* interface.c (gfc_compare_types): Don't compare BT_UNION components
|
|
|
|
|
until we know they're both UNIONs.
|
|
|
|
|
* interface.c (gfc_compare_union_types): Guard against empty
|
|
|
|
|
components.
|
|
|
|
|
|
2016-10-05 20:00:30 +02:00
|
|
|
|
2016-10-05 Louis Krupp <louis.krupp@zoho.com>
|
|
|
|
|
|
|
|
|
|
PR fortran/67524
|
|
|
|
|
* resolve.c (resolve_symbol): Don't apply default type rules to
|
|
|
|
|
mixed-entry master created for function entry points.
|
|
|
|
|
|
2016-10-01 01:19:58 +02:00
|
|
|
|
2016-09-30 Jerry DeLisle <jvdelisle@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
PR fortran/66643
|
|
|
|
|
* io.c (match_dt_unit): Peek check for missing format.
|
|
|
|
|
|
2016-09-30 13:42:31 +02:00
|
|
|
|
2016-09-30 Fritz Reese <fritzoreese@gmail.com>
|
|
|
|
|
|
|
|
|
|
PR fortran/77764
|
|
|
|
|
* interface.c (gfc_compare_union_types): Null-guard map components.
|
|
|
|
|
|
2016-09-30 13:37:23 +02:00
|
|
|
|
2016-09-30 Fritz Reese <fritzoreese@gmail.com>
|
|
|
|
|
|
|
|
|
|
PR fortran/77782
|
|
|
|
|
* interface.c (gfc_compare_derived_types): Use gfc_compare_union_types
|
|
|
|
|
to compare union types.
|
|
|
|
|
|
2016-09-30 12:20:59 +02:00
|
|
|
|
2016-09-30 Andre Vehreschild <vehre@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
* trans-array.c (gfc_array_allocate): Use the token from coarray's
|
|
|
|
|
.token member.
|
|
|
|
|
* trans-intrinsic.c (conv_expr_ref_to_caf_ref): Only generate
|
|
|
|
|
caf-reference chains from the first coarray references on.
|
|
|
|
|
* trans-types.c (gfc_get_derived_type): Switch on mandatory .token
|
|
|
|
|
member generation for allocatable arrays in coarrays in derived types.
|
|
|
|
|
|
2016-09-29 10:41:34 +02:00
|
|
|
|
2016-09-29 James Greenhalgh <james.greenhalgh@arm.com>
|
|
|
|
|
|
|
|
|
|
* options.c (gfc_post_options): Remove special case for
|
|
|
|
|
TARGET_FLT_EVAL_METHOD_NON_DEFAULT with -fexcess-precision=standard.
|
|
|
|
|
|
2016-09-27 09:52:28 +02:00
|
|
|
|
2016-09-27 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
2016-09-27 20:14:10 +02:00
|
|
|
|
* dependency.c (gfc_dep_compare_expr): Remove break after return.
|
|
|
|
|
* frontend-passes.c (optimize_op): Likewise.
|
|
|
|
|
* interface.c (gfc_current_interface_head): Likewise.
|
|
|
|
|
* symbol.c (check_conflict): Likewise.
|
|
|
|
|
* trans-intrinsic.c (build_fix_expr): Likewise.
|
|
|
|
|
|
2016-09-27 09:52:28 +02:00
|
|
|
|
PR fortran/77666
|
|
|
|
|
* trans-openmp.c (gfc_omp_private_outer_ref): Return true even for
|
|
|
|
|
references to allocatable arrays.
|
|
|
|
|
|
2016-09-26 20:44:36 +02:00
|
|
|
|
2016-09-26 Steven G. Kargl <kargl@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
PR fortran/77420
|
|
|
|
|
* trans-common.c: Handle array elements in equivalence when
|
|
|
|
|
the lower and upper bounds of array spec are NULL.
|
|
|
|
|
|
2016-09-26 13:15:23 +02:00
|
|
|
|
2016-09-26 Paul Thomas <pault@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
PR fortran/48298
|
|
|
|
|
* interface.c (gfc_find_specific_dtio_proc) : Return NULL if
|
|
|
|
|
the derived type is broken, as indicated by a flavor other than
|
|
|
|
|
FL_DERIVED.
|
|
|
|
|
|
2016-09-26 11:42:50 +02:00
|
|
|
|
2016-09-26 Marek Polacek <polacek@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR c/7652
|
|
|
|
|
* arith.c (eval_intrinsic): Add gcc_fallthrough.
|
|
|
|
|
* frontend-passes.c (optimize_op): Likewise.
|
|
|
|
|
(gfc_expr_walker): Likewise.
|
|
|
|
|
* parse.c (next_fixed): Likewise.
|
|
|
|
|
* primary.c (match_variable): Likewise.
|
|
|
|
|
* trans-array.c: Likewise.
|
|
|
|
|
* trans-expr.c (flatten_array_ctors_without_strlen): Likewise.
|
|
|
|
|
* trans-io.c (transfer_expr): Likewise.
|
|
|
|
|
|
2016-09-25 20:46:28 +02:00
|
|
|
|
2016-09-25 Steven G. Kargl <kargl@gcc.gnu.org>
|
|
|
|
|
|
2016-09-26 13:15:23 +02:00
|
|
|
|
PR fortran/77429
|
2016-09-25 20:46:28 +02:00
|
|
|
|
* dependency.c (gfc_check_dependency): Convert gcc_assert() to
|
|
|
|
|
a conditional and possible call to gfc_internal_error().
|
|
|
|
|
|
2016-09-25 19:30:27 +02:00
|
|
|
|
2016-09-25 Steven G. Kargl <kargl@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
PR fortran/77694
|
|
|
|
|
* frontend-passes.c (optimize_binop_array_assignment): Check pointer
|
|
|
|
|
for NULL.
|
|
|
|
|
|
lang.opt, [...]: New flag -fdec-static.
2016-09-23 Fritz Reese <fritzoreese@gmail.com>
gcc/fortran/
* lang.opt, invoke.texi, gfortran.texi: New flag -fdec-static.
* options.c (set_dec_flags): Set -fdec-static with -fdec.
* gfortran.h (symbol_attribute): New attribute automatic.
* gfortran.h (gfc_add_automatic): New prototype.
* match.h (gfc_match_automatic, gfc_match_static): New functions.
* decl.c (gfc_match_automatic, gfc_match_static): Ditto.
* symbol.c (gfc_add_automatic): Ditto.
* decl.c (match_attr_spec): Match AUTOMATIC and STATIC decls.
* parse.c (decode_specification_statement, decode_statement): Ditto.
* resolve.c (apply_default_init_local, resolve_fl_variable_derived,
resolve_symbol): Support for automatic attribute.
* symbol.c (check_conflict, gfc_copy_attr, gfc_is_var_automatic):
Ditto.
* trans-decl.c (gfc_finish_var_decl): Ditto.
gcc/testsuite/gfortran.dg/
* dec_static_1.f90, dec_static_2.f90, dec_static_3.f90,
dec_static_4.f90: New testcases.
From-SVN: r240458
2016-09-23 23:06:18 +02:00
|
|
|
|
2016-09-23 Fritz Reese <fritzoreese@gmail.com>
|
|
|
|
|
|
|
|
|
|
* lang.opt, invoke.texi, gfortran.texi: New flag -fdec-static.
|
|
|
|
|
* options.c (set_dec_flags): Set -fdec-static with -fdec.
|
|
|
|
|
* gfortran.h (symbol_attribute): New attribute automatic.
|
|
|
|
|
* gfortran.h (gfc_add_automatic): New prototype.
|
|
|
|
|
* match.h (gfc_match_automatic, gfc_match_static): New functions.
|
|
|
|
|
* decl.c (gfc_match_automatic, gfc_match_static): Ditto.
|
|
|
|
|
* symbol.c (gfc_add_automatic): Ditto.
|
|
|
|
|
* decl.c (match_attr_spec): Match AUTOMATIC and STATIC decls.
|
|
|
|
|
* parse.c (decode_specification_statement, decode_statement): Ditto.
|
|
|
|
|
* resolve.c (apply_default_init_local, resolve_fl_variable_derived,
|
|
|
|
|
resolve_symbol): Support for automatic attribute.
|
|
|
|
|
* symbol.c (check_conflict, gfc_copy_attr, gfc_is_var_automatic):
|
|
|
|
|
Ditto.
|
|
|
|
|
* trans-decl.c (gfc_finish_var_decl): Ditto.
|
|
|
|
|
|
2016-09-23 22:36:21 +02:00
|
|
|
|
2016-09-23 Jerry DeLisle <jvdelisle@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
PR fortran/48298
|
|
|
|
|
* gfortran.h (gfc_dt): Add *udtio.
|
|
|
|
|
* ioparm.def: Add bit IOPARM_dt_f2003 to align with library use of bit
|
|
|
|
|
25. Add IOPARM_dt_dtio bit to common flags.
|
|
|
|
|
* resolve.c (resolve_transfer): Set dt->udtio to expression.
|
|
|
|
|
* io.c (gfc_match_inquire): Adjust error message for internal
|
|
|
|
|
unit KIND.
|
|
|
|
|
* libgfortran.h: Adjust defines for GFC_INTERNAL_UNIT4,
|
|
|
|
|
GFC_INTERNAL_UNIT, and GFC_INVALID_UNIT.
|
|
|
|
|
* trans-io.c (build_dt): Set common_unit to reflect the KIND of
|
|
|
|
|
the internal unit. Set mask bit for presence of dt->udtio.
|
|
|
|
|
|
2016-09-23 12:17:22 +02:00
|
|
|
|
2016-09-22 Andre Vehreschild <vehre@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
* trans-intrinsic.c (gfc_conv_intrinsic_caf_get): Use the old caf-
|
|
|
|
|
interface where possible.
|
|
|
|
|
|
2016-09-22 09:46:07 +02:00
|
|
|
|
2016-09-22 Paul Thomas <pault@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
* interface.c (check_dtio_interface1): Introduce errors for
|
|
|
|
|
alternate returns and incorrect numbers of arguments.
|
|
|
|
|
(gfc_find_specific_dtio_proc): Return cleanly if the derived
|
|
|
|
|
type either doesn't exist or has no namespace.
|
|
|
|
|
|
2016-09-22 09:07:53 +02:00
|
|
|
|
2016-09-21 Louis Krupp <louis.krupp@zoho.com>
|
|
|
|
|
|
|
|
|
|
PR fortran/66107
|
|
|
|
|
* decl.c (add_init_expr_to_sym): Catch variable character length
|
|
|
|
|
in parameter array.
|
|
|
|
|
|
2016-09-21 08:57:28 +02:00
|
|
|
|
2016-09-21 Paul Thomas <pault@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
PR fortran/77657
|
|
|
|
|
|
|
|
|
|
* interface.c (gfc_find_specific_dtio_proc): Borrow trick from
|
|
|
|
|
resolve_typebound_generic_call to find dtio procedures that
|
|
|
|
|
over-ride those in the declared type.
|
|
|
|
|
|
2016-09-20 20:41:14 +02:00
|
|
|
|
2016-09-20 Marek Polacek <polacek@redhat.com>
|
|
|
|
|
|
|
|
|
|
* trans-intrinsic.c (conv_expr_ref_to_caf_ref): Adjust fall through
|
|
|
|
|
comment.
|
|
|
|
|
|
2016-09-19 15:45:40 +02:00
|
|
|
|
2016-09-19 Andre Vehreschild <vehre@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
PR fortran/71952
|
|
|
|
|
* expr.c (gfc_check_assign): Added flag to control whether datatype
|
|
|
|
|
conversion is allowed.
|
|
|
|
|
* gfortran.h: Added caf-token-tree to gfc_component. Changed
|
|
|
|
|
prototypes mostly to add whether datatype conversion is allowed.
|
|
|
|
|
* gfortran.texi: Added documentation for the caf_reference_t and the
|
|
|
|
|
caf_*_by_ref function.
|
|
|
|
|
* primary.c (caf_variable_attr): Similar to gfc_variable_attr but
|
|
|
|
|
focused on the needs of coarrays.
|
|
|
|
|
(gfc_caf_attr): Same.
|
|
|
|
|
* resolve.c (resolve_ordinary_assign): Set the conversion allowed
|
|
|
|
|
flag when not in a coarray.
|
|
|
|
|
* trans-array.c (gfc_array_init_size): Moved setting of array
|
|
|
|
|
descriptor's datatype before the alloc, because caf_register needs it.
|
|
|
|
|
(gfc_array_allocate): Changed notion of whether an array is a coarray.
|
|
|
|
|
(gfc_array_deallocate): Same.
|
|
|
|
|
(gfc_alloc_allocatable_for_assignment): Added setting of coarray's
|
|
|
|
|
array descriptor datatype before the register. And using deregister/
|
|
|
|
|
register to mimmick a realloc for coarrays.
|
|
|
|
|
* trans-decl.c (gfc_build_builtin_function_decls): Corrected signatures
|
|
|
|
|
of old caf-functions and added signature definitions of the _by_ref
|
|
|
|
|
ones.
|
|
|
|
|
(generate_coarray_sym_init): Adapted to new caf_register signature.
|
|
|
|
|
* trans-expr.c (gfc_conv_scalar_to_descriptor): Make sure a constant
|
|
|
|
|
is translated to an lvalue expression before use in an array
|
|
|
|
|
descriptor.
|
|
|
|
|
(gfc_get_ultimate_alloc_ptr_comps_caf_token): New function. Get the
|
|
|
|
|
last allocatable component's coarray token.
|
|
|
|
|
(gfc_get_tree_for_caf_expr): For top-level object get the coarray
|
|
|
|
|
token and check for unsupported features.
|
|
|
|
|
(gfc_get_caf_token_offset): Getting the offset might procude new
|
|
|
|
|
statements, which now are stored in the pre and post of the current se.
|
|
|
|
|
(gfc_caf_get_image_index): For this image return a call to
|
|
|
|
|
caf_this_image.
|
|
|
|
|
(expr_may_alias_variables): Check that the result is set for testing
|
|
|
|
|
its properties.
|
|
|
|
|
(alloc_scalar_allocatable_for_assignment): Added auto allocation of
|
|
|
|
|
coarray components.
|
|
|
|
|
(gfc_trans_assignment_1): Rewrite an assign to a coarray object to
|
|
|
|
|
be a sendget.
|
|
|
|
|
* trans-intrinsic.c (conv_caf_vector_subscript_elem): Corrected
|
|
|
|
|
wrong comment.
|
|
|
|
|
(compute_component_offset): Compute the correct offset a structure
|
|
|
|
|
member.
|
|
|
|
|
(conv_expr_ref_to_caf_ref): Convert to a chain of refs into
|
|
|
|
|
caf_references.
|
|
|
|
|
(gfc_conv_intrinsic_caf_get): Call caf_get_by_ref instead of caf_get.
|
|
|
|
|
(conv_caf_send): Call caf_*_by_ref for coarrays that need
|
|
|
|
|
reallocation.
|
|
|
|
|
(gfc_conv_intrinsic_function): Adapted to new signuature of the caf
|
|
|
|
|
drivers.
|
|
|
|
|
(conv_intrinsic_atomic_op): Add pre and post statements correctly.
|
|
|
|
|
(conv_intrinsic_atomic_ref): Same.
|
|
|
|
|
(conv_intrinsic_atomic_cas): Same.
|
|
|
|
|
(conv_intrinsic_event_query): Same.
|
|
|
|
|
* trans-stmt.c (gfc_trans_lock_unlock): Same.
|
|
|
|
|
(gfc_trans_event_post_wait): Same.
|
|
|
|
|
(gfc_trans_allocate): Support allocation of allocatable coarrays.
|
|
|
|
|
(gfc_trans_deallocate): And there deallocation.
|
|
|
|
|
* trans-types.c (gfc_typenode_for_spec): Added flag to control whether
|
|
|
|
|
a component is part of coarray. When so, then add space to store a
|
|
|
|
|
coarray token.
|
|
|
|
|
(gfc_build_array_type): Same.
|
|
|
|
|
(gfc_get_array_descriptor_base): Same.
|
|
|
|
|
(gfc_get_array_type_bounds): Same.
|
|
|
|
|
(gfc_sym_type): Same.
|
|
|
|
|
(gfc_get_derived_type): Same.
|
|
|
|
|
(gfc_get_caf_reference_type): Declare the caf_reference_type.
|
|
|
|
|
* trans-types.h: Prototype changes only.
|
|
|
|
|
* trans.c (gfc_allocate_using_lib): Use the updated caf_register
|
|
|
|
|
signature.
|
|
|
|
|
(gfc_allocate_allocatable): Same.
|
|
|
|
|
(gfc_deallocate_with_status): Same.
|
|
|
|
|
* trans.h: Defined the runtime types for caf_reference_t and the enums.
|
|
|
|
|
|
2016-09-19 13:32:09 +02:00
|
|
|
|
2016-09-19 Fritz Reese <fritzoreese@gmail.com>
|
|
|
|
|
|
|
|
|
|
PR fortran/77584
|
|
|
|
|
* decl.c (match_record_decl, gfc_match_decl_type_spec): Fixes to
|
|
|
|
|
handling of structure/record from declaration-type-spec.
|
|
|
|
|
|
2016-09-18 07:52:23 +02:00
|
|
|
|
2016_09_17 Louis Krupp <louis.krupp@zoho.com>
|
|
|
|
|
|
|
|
|
|
PR fortran/68078
|
|
|
|
|
* resolve.c (resolve_allocate_expr): Check that derived type
|
|
|
|
|
pointer, object or array has been successfully allocated before
|
|
|
|
|
initializing.
|
|
|
|
|
|
2016-09-16 19:55:38 +02:00
|
|
|
|
2016-09-16 Steven G. Kargl <kargl@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
PR fortran/77612
|
2016-09-21 08:57:28 +02:00
|
|
|
|
* decl.c (char_len_param_value): Check parent namespace for
|
2016-09-16 19:55:38 +02:00
|
|
|
|
seen_implicit_none.
|
|
|
|
|
|
2016-09-16 01:54:40 +02:00
|
|
|
|
2016-09-15 Louis Krupp <louis.krupp@zoho.com>
|
2016-09-16 19:55:38 +02:00
|
|
|
|
|
2016-09-16 01:54:40 +02:00
|
|
|
|
PR fortran/69963
|
|
|
|
|
* parse.c (reject_statement): Clear charlen pointers in implicit
|
|
|
|
|
character typespecs before those charlen structures are freed.
|
|
|
|
|
|
2016-09-14 20:04:39 +02:00
|
|
|
|
2016-09-14 Bernd Edlinger <bernd.edlinger@hotmail.de>
|
|
|
|
|
|
|
|
|
|
* simplify.c (gfc_simplify_repeat): Fix a misplaced closing ')'.
|
|
|
|
|
|
2016-09-13 19:00:29 +02:00
|
|
|
|
2016-09-13 Steven G. Kargl <kargl@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
PR fortran/77420
|
|
|
|
|
* module.c (load_equiv): Revert revision 240063.
|
|
|
|
|
|
2016-09-10 23:16:45 +02:00
|
|
|
|
2016-09-10 Paul Thomas <pault@gcc.gnu.org>
|
|
|
|
|
Steven G. Kargl <kargl@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
PR fortran/77532
|
2016-09-10 23:18:28 +02:00
|
|
|
|
* interface.c (check_dtio_arg_TKR_intent): Return after error.
|
2016-09-10 23:16:45 +02:00
|
|
|
|
(check_dtio_interface1): Remove asserts, test for NULL and return
|
|
|
|
|
if found.
|
|
|
|
|
|
2016-09-10 02:59:33 +02:00
|
|
|
|
2016-09-09 Steven G. Kargl <kargl@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
PR fortran/77420
|
|
|
|
|
* module.c (load_equiv): If the current namespace has a list of
|
|
|
|
|
equivalence statements, initialize duplicate to false and then
|
|
|
|
|
look for duplicates; otherwise, initialize it to true.
|
|
|
|
|
|
2016-09-09 20:04:23 +02:00
|
|
|
|
2016-09-09 Steven G. Kargl <kargl@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
PR fortran/77506
|
|
|
|
|
* array.c (gfc_match_array_constructor): CHARACTER(len=*) cannot
|
|
|
|
|
appear in an array constructor.
|
|
|
|
|
|
2016-09-09 19:57:11 +02:00
|
|
|
|
2016-09-09 Steven G. Kargl <kargl@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
PR fortran/77507
|
|
|
|
|
* intrinsic.c (add_functions): Use correct keyword.
|
|
|
|
|
|
2016-09-09 00:33:10 +02:00
|
|
|
|
2016-09-08 Steven G. Kargl <kargl@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
PR fortran/69514
|
|
|
|
|
* array.c (gfc_match_array_constructor): If type-spec is present,
|
2016-09-21 08:57:28 +02:00
|
|
|
|
walk the array constructor performing possible conversions for
|
2016-09-09 00:33:10 +02:00
|
|
|
|
numeric types.
|
|
|
|
|
|
2016-09-08 14:19:21 +02:00
|
|
|
|
2016-09-08 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR fortran/77500
|
|
|
|
|
* trans-openmp.c (gfc_trans_omp_atomic): For atomic write or
|
|
|
|
|
swap, don't try to look through GFC_ISYM_CONVERSION. In other cases,
|
|
|
|
|
check that value.function.isym is non-NULL before dereferencing it.
|
|
|
|
|
|
2016-09-04 22:00:48 +02:00
|
|
|
|
2016-09-04 Steven G. Kargl <kargl@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
PR fortran/77391
|
|
|
|
|
* resolve.c (deferred_requirements): New function to check F2008:C402.
|
|
|
|
|
(resolve_fl_variable,resolve_fl_parameter): Use it.
|
2016-09-21 08:57:28 +02:00
|
|
|
|
|
2016-09-04 20:43:40 +02:00
|
|
|
|
2016-09-04 Steven G. Kargl <kargl@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
PR fortran/77460
|
|
|
|
|
* simplify.c (simplify_transformation_to_scalar): On error, result
|
|
|
|
|
may be NULL, simply return.
|
|
|
|
|
|
2016-08-31 20:42:08 +02:00
|
|
|
|
2016-08-31 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
2016-08-31 20:42:55 +02:00
|
|
|
|
PR fortran/77352
|
|
|
|
|
* trans-openmp.c (gfc_trans_omp_parallel_workshare): Always add a
|
|
|
|
|
BIND_EXPR with BLOCK around what gfc_trans_omp_workshare returns.
|
|
|
|
|
|
2016-08-31 20:42:08 +02:00
|
|
|
|
PR fortran/77374
|
|
|
|
|
* parse.c (parse_omp_oacc_atomic): Copy over cp->ext.omp_atomic
|
|
|
|
|
to cp->block->ext.omp_atomic.
|
|
|
|
|
* resolve.c (gfc_resolve_blocks): Assert block with one or two
|
|
|
|
|
EXEC_ASSIGNs for EXEC_*_ATOMIC.
|
|
|
|
|
* openmp.c (resolve_omp_atomic): Don't assert one or two
|
|
|
|
|
EXEC_ASSIGNs, instead return quietly for EXEC_NOPs and otherwise
|
|
|
|
|
error unexpected statements.
|
|
|
|
|
|
[multiple changes]
2016-08-31 Paul Thomas <pault@gcc.gnu.org>
Jerry DeLisle <jvdelisle@gcc.gnu.org>
PR fortran/48298
* decl.c (access_attr_decl): Include case INTERFACE_DTIO as
appropriate.
* gfortran.h : Add INTRINSIC_FORMATTED and
INTRINSIC_UNFORMATTED to gfc_intrinsic_op. Add INTERFACE_DTIO
to interface type. Add new enum 'dtio_codes'. Add bitfield
'has_dtio_procs' to symbol_attr. Add prototypes
'gfc_check_dtio_interfaces' and 'gfc_find_specific_dtio_proc'.
* interface.c (dtio_op): New function.
(gfc_match_generic_spec): Match generic DTIO interfaces.
(gfc_match_interface): Treat DTIO interfaces in the same way as
(gfc_current_interface_head): Add INTERFACE_DTIO appropriately.
(check_dtio_arg_TKR_intent): New function.
(check_dtio_interface1): New function.
(gfc_check_dtio_interfaces): New function.
(gfc_find_specific_dtio_proc): New function.
* io.c : Add FMT_DT to format_token.
(format_lex): Handle DTIO formatting.
* match.c (gfc_op2string): Add DTIO operators.
* resolve.c (derived_inaccessible): Ignore pointer components
to enclosing derived type.
(resolve_transfer): Resolve transfers that involve DTIO.
procedures. Find the specific subroutine for the transfer and
use its existence to over-ride some of the constraints on
derived types. If the transfer is recursive, require that the
subroutine be so qualified.
(dtio_procs_present): New function.
(resolve_fl_namelist): Remove inhibition of polymorphic objects
in namelists if DTIO read and write subroutines exist. Likewise
for derived types.
(resolve_types): Invoke 'gfc_verify_dtio_procedures'.
* symbol.c : Set 'dtio_procs' using 'minit'.
* trans-decl.c (gfc_finish_var_decl): If a derived-type/class
object is associated with DTIO procedures, make it TREE_STATIC.
* trans-expr.c (gfc_get_vptr_from_expr): If the expression
drills down to a PARM_DECL, extract the vptr correctly.
(gfc_conv_derived_to_class): Check 'info' in the test for
'useflags'. If the se expression exists and is a pointer, use
it as the class _data.
* trans-io.c : Add IOCALL_X_DERIVED to iocall and the function
prototype. Likewise for IOCALL_SET_NML_DTIO_VAL.
(set_parameter_tree): Renamed from 'set_parameter_const', now
returns void and has new tree argument. Calls modified to match
new interface.
(transfer_namelist_element): Transfer DTIO procedure pointer
and vpointer using the new function IOCALL_SET_NML_DTIO_VAL.
(get_dtio_proc): New function.
(transfer_expr): Add new argument for the vptr field of class
objects. Add the code to call the specific DTIO proc, convert
derived types to class and call IOCALL_X_DERIVED.
(trans_transfer): Add BT_CLASS to structures for treatment by
the scalarizer. Obtain the vptr for the dynamic type, both for
scalar and array transfer.
2016-08-31 Jerry DeLisle <jvdelisle@gcc.gnu.org>
Paul Thomas <pault@gcc.gnu.org>
PR libgfortran/48298
* gfortran.map : Flag _st_set_nml_dtio_var and
_gfortran_transfer_derived.
* io/format.c (format_lex): Detect DTIO formatting.
(parse_format_list): Parse the DTIO format.
(next_format): Include FMT_DT.
* io/format.h : Likewise. Add structure 'udf' to structure
'fnode' to carry the IOTYPE string and the 'vlist'.
* io/io.h : Add prototypes for the two types of DTIO subroutine
and a typedef for gfc_class. Also, add to 'namelist_type'
fields for the pointer to the DTIO procedure and the vtable.
Add fields to struct st_parameter_dt for pointers to the two
types of DTIO subroutine. Add to gfc_unit DTIO specific fields.
(internal_proto): Add prototype for 'read_user_defined' and
'write_user_defined'.
* io/list_read.c (check_buffers): Use the 'current_unit' field.
(unget_char): Likewise.
(eat_spaces): Likewise.
(list_formatted_read_scalar): For case BT_CLASS, call the DTIO
procedure.
(nml_get_obj_data): Likewise when DTIO procedure is present,.
* io/transfer.c : Export prototypes for 'transfer_derived' and
'transfer_derived_write'.
(unformatted_read): For case BT_CLASS, call the DTIO procedure.
(unformatted_write): Likewise.
(formatted_transfer_scalar_read): Likewise.
(formatted_transfer_scalar_write: Likewise.
(transfer_derived): New function.
(data_transfer_init): Set last_char if no child_dtio.
(finalize_transfer): Return if child_dtio set.
(st_write_done): Add condition for child_dtio not set.
Add extra arguments for st_set_nml_var prototype.
(set_nml_var): New function that contains the contents of the
old version of st_set_nml_var. Also sets the 'dtio_sub' and
'vtable' fields of the 'nml' structure.
(st_set_nml_var): Now just calls set_nml_var with 'dtio_sub'
and 'vtable' NULL.
(st_set_nml_dtio_var): New function that calls set_nml_var.
* io/unit.c (get_external_unit): If the found unit child_dtio
is non zero, don't do any mutex locking/unlocking. Just
return the unit.
* io/unix.c (tempfile_open): Revert to C style comment.
* io/write.c (list_formatted_write_scalar): Do the DTIO call.
(nml_write_obj): Add BT_CLASS and do the DTIO call.
2016-08-31 Jerry DeLisle <jvdelisle@gcc.gnu.org>
Paul Thomas <pault@gcc.gnu.org>
PR fortran/48298
* gfortran.dg/dtio_1.f90: New test.
* gfortran.dg/dtio_2.f90: New test.
* gfortran.dg/dtio_3.f90: New test.
* gfortran.dg/dtio_4.f90: New test.
* gfortran.dg/dtio_5.f90: New test.
* gfortran.dg/dtio_6.f90: New test.
* gfortran.dg/dtio_7.f90: New test.
* gfortran.dg/dtio_8.f90: New test.
* gfortran.dg/dtio_9.f90: New test.
* gfortran.dg/dtio_10.f90: New test.
From-SVN: r239880
2016-08-31 07:36:22 +02:00
|
|
|
|
2016-08-31 Paul Thomas <pault@gcc.gnu.org>
|
2016-08-31 20:42:08 +02:00
|
|
|
|
Jerry DeLisle <jvdelisle@gcc.gnu.org>
|
[multiple changes]
2016-08-31 Paul Thomas <pault@gcc.gnu.org>
Jerry DeLisle <jvdelisle@gcc.gnu.org>
PR fortran/48298
* decl.c (access_attr_decl): Include case INTERFACE_DTIO as
appropriate.
* gfortran.h : Add INTRINSIC_FORMATTED and
INTRINSIC_UNFORMATTED to gfc_intrinsic_op. Add INTERFACE_DTIO
to interface type. Add new enum 'dtio_codes'. Add bitfield
'has_dtio_procs' to symbol_attr. Add prototypes
'gfc_check_dtio_interfaces' and 'gfc_find_specific_dtio_proc'.
* interface.c (dtio_op): New function.
(gfc_match_generic_spec): Match generic DTIO interfaces.
(gfc_match_interface): Treat DTIO interfaces in the same way as
(gfc_current_interface_head): Add INTERFACE_DTIO appropriately.
(check_dtio_arg_TKR_intent): New function.
(check_dtio_interface1): New function.
(gfc_check_dtio_interfaces): New function.
(gfc_find_specific_dtio_proc): New function.
* io.c : Add FMT_DT to format_token.
(format_lex): Handle DTIO formatting.
* match.c (gfc_op2string): Add DTIO operators.
* resolve.c (derived_inaccessible): Ignore pointer components
to enclosing derived type.
(resolve_transfer): Resolve transfers that involve DTIO.
procedures. Find the specific subroutine for the transfer and
use its existence to over-ride some of the constraints on
derived types. If the transfer is recursive, require that the
subroutine be so qualified.
(dtio_procs_present): New function.
(resolve_fl_namelist): Remove inhibition of polymorphic objects
in namelists if DTIO read and write subroutines exist. Likewise
for derived types.
(resolve_types): Invoke 'gfc_verify_dtio_procedures'.
* symbol.c : Set 'dtio_procs' using 'minit'.
* trans-decl.c (gfc_finish_var_decl): If a derived-type/class
object is associated with DTIO procedures, make it TREE_STATIC.
* trans-expr.c (gfc_get_vptr_from_expr): If the expression
drills down to a PARM_DECL, extract the vptr correctly.
(gfc_conv_derived_to_class): Check 'info' in the test for
'useflags'. If the se expression exists and is a pointer, use
it as the class _data.
* trans-io.c : Add IOCALL_X_DERIVED to iocall and the function
prototype. Likewise for IOCALL_SET_NML_DTIO_VAL.
(set_parameter_tree): Renamed from 'set_parameter_const', now
returns void and has new tree argument. Calls modified to match
new interface.
(transfer_namelist_element): Transfer DTIO procedure pointer
and vpointer using the new function IOCALL_SET_NML_DTIO_VAL.
(get_dtio_proc): New function.
(transfer_expr): Add new argument for the vptr field of class
objects. Add the code to call the specific DTIO proc, convert
derived types to class and call IOCALL_X_DERIVED.
(trans_transfer): Add BT_CLASS to structures for treatment by
the scalarizer. Obtain the vptr for the dynamic type, both for
scalar and array transfer.
2016-08-31 Jerry DeLisle <jvdelisle@gcc.gnu.org>
Paul Thomas <pault@gcc.gnu.org>
PR libgfortran/48298
* gfortran.map : Flag _st_set_nml_dtio_var and
_gfortran_transfer_derived.
* io/format.c (format_lex): Detect DTIO formatting.
(parse_format_list): Parse the DTIO format.
(next_format): Include FMT_DT.
* io/format.h : Likewise. Add structure 'udf' to structure
'fnode' to carry the IOTYPE string and the 'vlist'.
* io/io.h : Add prototypes for the two types of DTIO subroutine
and a typedef for gfc_class. Also, add to 'namelist_type'
fields for the pointer to the DTIO procedure and the vtable.
Add fields to struct st_parameter_dt for pointers to the two
types of DTIO subroutine. Add to gfc_unit DTIO specific fields.
(internal_proto): Add prototype for 'read_user_defined' and
'write_user_defined'.
* io/list_read.c (check_buffers): Use the 'current_unit' field.
(unget_char): Likewise.
(eat_spaces): Likewise.
(list_formatted_read_scalar): For case BT_CLASS, call the DTIO
procedure.
(nml_get_obj_data): Likewise when DTIO procedure is present,.
* io/transfer.c : Export prototypes for 'transfer_derived' and
'transfer_derived_write'.
(unformatted_read): For case BT_CLASS, call the DTIO procedure.
(unformatted_write): Likewise.
(formatted_transfer_scalar_read): Likewise.
(formatted_transfer_scalar_write: Likewise.
(transfer_derived): New function.
(data_transfer_init): Set last_char if no child_dtio.
(finalize_transfer): Return if child_dtio set.
(st_write_done): Add condition for child_dtio not set.
Add extra arguments for st_set_nml_var prototype.
(set_nml_var): New function that contains the contents of the
old version of st_set_nml_var. Also sets the 'dtio_sub' and
'vtable' fields of the 'nml' structure.
(st_set_nml_var): Now just calls set_nml_var with 'dtio_sub'
and 'vtable' NULL.
(st_set_nml_dtio_var): New function that calls set_nml_var.
* io/unit.c (get_external_unit): If the found unit child_dtio
is non zero, don't do any mutex locking/unlocking. Just
return the unit.
* io/unix.c (tempfile_open): Revert to C style comment.
* io/write.c (list_formatted_write_scalar): Do the DTIO call.
(nml_write_obj): Add BT_CLASS and do the DTIO call.
2016-08-31 Jerry DeLisle <jvdelisle@gcc.gnu.org>
Paul Thomas <pault@gcc.gnu.org>
PR fortran/48298
* gfortran.dg/dtio_1.f90: New test.
* gfortran.dg/dtio_2.f90: New test.
* gfortran.dg/dtio_3.f90: New test.
* gfortran.dg/dtio_4.f90: New test.
* gfortran.dg/dtio_5.f90: New test.
* gfortran.dg/dtio_6.f90: New test.
* gfortran.dg/dtio_7.f90: New test.
* gfortran.dg/dtio_8.f90: New test.
* gfortran.dg/dtio_9.f90: New test.
* gfortran.dg/dtio_10.f90: New test.
From-SVN: r239880
2016-08-31 07:36:22 +02:00
|
|
|
|
|
|
|
|
|
PR fortran/48298
|
|
|
|
|
* decl.c (access_attr_decl): Include case INTERFACE_DTIO as
|
|
|
|
|
appropriate.
|
|
|
|
|
* gfortran.h : Add INTRINSIC_FORMATTED and
|
|
|
|
|
INTRINSIC_UNFORMATTED to gfc_intrinsic_op. Add INTERFACE_DTIO
|
|
|
|
|
to interface type. Add new enum 'dtio_codes'. Add bitfield
|
|
|
|
|
'has_dtio_procs' to symbol_attr. Add prototypes
|
|
|
|
|
'gfc_check_dtio_interfaces' and 'gfc_find_specific_dtio_proc'.
|
|
|
|
|
* interface.c (dtio_op): New function.
|
|
|
|
|
(gfc_match_generic_spec): Match generic DTIO interfaces.
|
|
|
|
|
(gfc_match_interface): Treat DTIO interfaces in the same way as
|
|
|
|
|
(gfc_current_interface_head): Add INTERFACE_DTIO appropriately.
|
|
|
|
|
(check_dtio_arg_TKR_intent): New function.
|
|
|
|
|
(check_dtio_interface1): New function.
|
|
|
|
|
(gfc_check_dtio_interfaces): New function.
|
|
|
|
|
(gfc_find_specific_dtio_proc): New function.
|
|
|
|
|
* io.c : Add FMT_DT to format_token.
|
|
|
|
|
(format_lex): Handle DTIO formatting.
|
|
|
|
|
* match.c (gfc_op2string): Add DTIO operators.
|
|
|
|
|
* resolve.c (derived_inaccessible): Ignore pointer components
|
|
|
|
|
to enclosing derived type.
|
|
|
|
|
(resolve_transfer): Resolve transfers that involve DTIO.
|
|
|
|
|
procedures. Find the specific subroutine for the transfer and
|
|
|
|
|
use its existence to over-ride some of the constraints on
|
|
|
|
|
derived types. If the transfer is recursive, require that the
|
|
|
|
|
subroutine be so qualified.
|
|
|
|
|
(dtio_procs_present): New function.
|
|
|
|
|
(resolve_fl_namelist): Remove inhibition of polymorphic objects
|
|
|
|
|
in namelists if DTIO read and write subroutines exist. Likewise
|
|
|
|
|
for derived types.
|
|
|
|
|
(resolve_types): Invoke 'gfc_verify_dtio_procedures'.
|
|
|
|
|
* symbol.c : Set 'dtio_procs' using 'minit'.
|
|
|
|
|
* trans-decl.c (gfc_finish_var_decl): If a derived-type/class
|
|
|
|
|
object is associated with DTIO procedures, make it TREE_STATIC.
|
|
|
|
|
* trans-expr.c (gfc_get_vptr_from_expr): If the expression
|
|
|
|
|
drills down to a PARM_DECL, extract the vptr correctly.
|
|
|
|
|
(gfc_conv_derived_to_class): Check 'info' in the test for
|
|
|
|
|
'useflags'. If the se expression exists and is a pointer, use
|
|
|
|
|
it as the class _data.
|
|
|
|
|
* trans-io.c : Add IOCALL_X_DERIVED to iocall and the function
|
|
|
|
|
prototype. Likewise for IOCALL_SET_NML_DTIO_VAL.
|
|
|
|
|
(set_parameter_tree): Renamed from 'set_parameter_const', now
|
|
|
|
|
returns void and has new tree argument. Calls modified to match
|
|
|
|
|
new interface.
|
|
|
|
|
(transfer_namelist_element): Transfer DTIO procedure pointer
|
|
|
|
|
and vpointer using the new function IOCALL_SET_NML_DTIO_VAL.
|
|
|
|
|
(get_dtio_proc): New function.
|
|
|
|
|
(transfer_expr): Add new argument for the vptr field of class
|
|
|
|
|
objects. Add the code to call the specific DTIO proc, convert
|
|
|
|
|
derived types to class and call IOCALL_X_DERIVED.
|
|
|
|
|
(trans_transfer): Add BT_CLASS to structures for treatment by
|
|
|
|
|
the scalarizer. Obtain the vptr for the dynamic type, both for
|
|
|
|
|
scalar and array transfer.
|
|
|
|
|
|
2016-08-30 16:33:00 +02:00
|
|
|
|
2016-08-30 Fritz Reese <fritzoreese@gmail.com>
|
|
|
|
|
|
|
|
|
|
* gfortran.texi: Fix typo in STRUCTURE documentation.
|
|
|
|
|
|
2016-08-29 14:24:25 +02:00
|
|
|
|
2016-08-29 Fritz Reese <fritzoreese@gmail.com>
|
|
|
|
|
|
|
|
|
|
Fix, reorganize, and clarify comparisons of anonymous types/components.
|
|
|
|
|
|
|
|
|
|
PR fortran/77327
|
|
|
|
|
* interface.c (is_anonymous_component, is_anonymous_dt): New functions.
|
|
|
|
|
* interface.c (compare_components, gfc_compare_derived_types): Use new
|
|
|
|
|
functions.
|
|
|
|
|
|
2016-09-05 21:42:42 +02:00
|
|
|
|
2016-08-27 Steven G. Kargl <kargl@gcc.gnu.org>
|
2016-08-27 17:45:35 +02:00
|
|
|
|
|
|
|
|
|
PR fortran/77380
|
|
|
|
|
* dependency.c (gfc_check_dependency): Do not assert with
|
|
|
|
|
-fcoarray=lib.
|
|
|
|
|
|
2016-09-05 21:42:42 +02:00
|
|
|
|
2016-08-27 Steven G. Kargl <kargl@gcc.gnu.org>
|
2016-08-27 17:38:55 +02:00
|
|
|
|
|
|
|
|
|
PR fortran/77372
|
|
|
|
|
simplify.c (simplify_ieee_selected_real_kind): Check for NULL pointers.
|
|
|
|
|
|
2016-08-25 21:35:46 +02:00
|
|
|
|
2016-08-25 Steven g. Kargl <kargl@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
PR fortran/77351
|
|
|
|
|
* frontend-passes.c (remove_trim,combine_array_constructor): Check for
|
|
|
|
|
NULL pointer.
|
|
|
|
|
|
2016-08-24 21:33:14 +02:00
|
|
|
|
2016-08-24 Paul Thomas <pault@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
PR fortran/77358
|
|
|
|
|
* resolve.c (resolve_fl_procedure): Use the correct gfc_charlen
|
|
|
|
|
for deferred character length module procedures.
|
|
|
|
|
|
2016-08-23 21:33:46 +02:00
|
|
|
|
2016-08-23 Fritz Reese <fritzoreese@gmail.com>
|
|
|
|
|
|
|
|
|
|
* decl.c (gfc_match_structure_decl): Make gfc_structure_id static.
|
|
|
|
|
|
2016-08-23 18:11:19 +02:00
|
|
|
|
2016-08-23 Fritz Reese <fritzoreese@gmail.com>
|
|
|
|
|
|
|
|
|
|
* interface.c (compare_components): Fix typo in name check conditional.
|
|
|
|
|
|
2016-08-22 20:23:43 +02:00
|
|
|
|
2016-08-22 Steven G. Kargl <kargl@gcc.gnu.org>
|
|
|
|
|
Bud Davis <jmdavis@link.com>
|
|
|
|
|
|
|
|
|
|
PR fortran/60774
|
|
|
|
|
* parse.c (next_free,next_fixed): Issue error for statement label
|
|
|
|
|
without a statement.
|
|
|
|
|
|
2016-08-22 20:18:14 +02:00
|
|
|
|
2016-08-22 Steven G. Kargl <kargl@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
PR fortran/61318
|
|
|
|
|
* interface.c (compare_parameter): Use better locus for error message.
|
|
|
|
|
|
2016-08-22 20:12:33 +02:00
|
|
|
|
2016-08-22 Steven G. Kargl <kargl@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
PR fortran/77260
|
|
|
|
|
* gcc/fortran/trans-decl.c (generate_local_decl): Suppress warning
|
|
|
|
|
for unused variable if symbol is entry point.
|
|
|
|
|
|
Implement C _FloatN, _FloatNx types.
ISO/IEC TS 18661-3:2015 defines C bindings to IEEE interchange and
extended types, in the form of _FloatN and _FloatNx type names with
corresponding fN/FN and fNx/FNx constant suffixes and FLTN_* / FLTNX_*
<float.h> macros. This patch implements support for this feature in
GCC.
The _FloatN types, for N = 16, 32, 64 or >= 128 and a multiple of 32,
are types encoded according to the corresponding IEEE interchange
format (endianness unspecified; may use either the NaN conventions
recommended in IEEE 754-2008, or the MIPS NaN conventions, since the
choice of convention is only an IEEE recommendation, not a
requirement). The _FloatNx types, for N = 32, 64 and 128, are IEEE
"extended" types: types extending a narrower format with range and
precision at least as big as those specified in IEEE 754 for each
extended type (and with unspecified representation, but still
following IEEE semantics for their values and operations - and with
the set of values being determined by the precision and the maximum
exponent, which means that while Intel "extended" is suitable for
_Float64x, m68k "extended" is not). These types are always distinct
from and not compatible with each other and the standard floating
types float, double, long double; thus, double, _Float64 and _Float32x
may all have the same ABI, but they are three still distinct types.
The type names may be used with _Complex to construct corresponding
complex types (unlike __float128, which acts more like a typedef name
than a keyword - thus, this patch may be considered to fix PR
c/32187). The new suffixes can be combined with GNU "i" and "j"
suffixes for constants of complex types (e.g. 1.0if128, 2.0f64i).
The set of types supported is implementation-defined. In this GCC
patch, _Float32 is SFmode if that is suitable; _Float32x and _Float64
are DFmode if that is suitable; _Float128 is TFmode if that is
suitable; _Float64x is XFmode if that is suitable, and otherwise
TFmode if that is suitable. There is a target hook to override the
choices if necessary. "Suitable" means both conforming to the
requirements of that type, and supported as a scalar type including in
libgcc. The ABI is whatever the back end does for scalars of that
mode (but note that _Float32 is passed without promotion in variable
arguments, unlike float). All the existing issues with exceptions and
rounding modes for existing types apply equally to the new type names.
No GCC port supports a floating-point format suitable for _Float128x.
Although there is HFmode support for ARM and AArch64, use of that for
_Float16 is not enabled. Supporting _Float16 would require additional
work on the excess precision aspects of TS 18661-3: there are new
values of FLT_EVAL_METHOD, which are not currently supported in GCC,
and FLT_EVAL_METHOD == 0 now means that operations and constants on
types narrower than float are evaluated to the range and precision of
float. Implementing that, so that _Float16 gets evaluated with excess
range and precision, would involve changes to the excess precision
infrastructure so that the _Float16 case is enabled by default, unlike
the x87 case which is only enabled for -fexcess-precision=standard.
Other differences between _Float16 and __fp16 would also need to be
disentangled.
GCC has some prior support for nonstandard floating-point types in the
form of __float80 and __float128. Where these were previously types
distinct from long double, they are made by this patch into aliases
for _Float64x / _Float128 if those types have the required properties.
In principle the set of possible _FloatN types is infinite. This
patch hardcodes the four such types for N <= 128, but with as much
code as possible using loops over types to minimize the number of
places with such hardcoding. I don't think it's likely any further
such types will be of use in future (or indeed that formats suitable
for _Float128x will actually be implemented). There is a corner case
that all _FloatN, for N >= 128 and a multiple of 32, should be treated
as keywords even when the corresponding type is not supported; I
intend to deal with that in a followup patch.
Tests are added for various functionality of the new types, mostly
using type-generic headers. The tests use dg-add-options to pass any
extra options needed to enable the types; this is wired up to use the
same options as for __float128 on powerpc to enable _Float128 and
_Float64x, and effective-target keywords for runtime support do the
same hardware test as for __float128 to make sure the VSX instructions
generated by those options are supported. (Corresponding additions
would be needed for _Float16 on ARM as well if that were enabled with
-mfp16-format=ieee required to use it rather than unconditionally
available. Of course, -mfp16-format=alternative enables use of a
format which is not compatible with the requirements of the _Float16
type.)
C++ note: no support for the new types or constant suffixes is added
for C++. C++ decimal floating-point support was very different from
the C support, using class types, and the same may well apply to any
future C++ bindings for IEEE interchange and extended types. There is
a case, however, for supporting at least *f128 constants in C++, so
that code using __float128 can use the newer style for constants
throughout rather than needing to use the older *q constants in C++.
Also, if built-in functions are added that may provide a way in which
the types could leak into C++ code.
Fortran note: the float128_type_node used in the Fortran front end is
renamed to gfc_float128_type_node, since the semantics are different:
in particular, if long double has binary128 format, then the new
language-independent float128_type_node is a distinct type that also
has binary128 format, but the Fortran node is expected to be NULL in
that case. Likewise, Fortran's complex_float128_type_node is renamed
to gfc_complex_float128_type_node.
PowerPC note: the back end had an inconsistency that if TFmode was
binary128, *q constants were TFmode instead of KFmode but __float128
was KFmode. This patch follows the same logic as for *q constants, so
that _Float128 prefers TFmode (and __float128 becomes an alias for
_Float128).
ARM note: __fp16 is promoted to double (by convert_arguments) when
passed without a prototype / in variable arguments. But this is only
about the argument promotion; it is not handled as promoting in
c-common.c:self_promoting_args_p / c-typeck.c:c_type_promotes_to,
meaning that a K&R function definition for an argument of type __fp16
corresponds to a prototype with an argument of that type, not to one
with an argument of type double, whereas a float argument in a K&R
function definition corresponds to a double prototype argument - and
the same functions are also what's involved in making va_arg give a
warning and generate a call to abort when called with type float.
This is preserved by this patch, while arranging for _Float16 not to
be promoted when passed without a prototype / in variable arguments
(the promotion of float being considered a legacy feature, not applied
to any new types in C99 or later).
TS 18661-3 extends the set of decimal floating-point types similarly,
and adds new constant suffixes for the existing types, but this patch
does not do anything regarding that extension.
This patch does nothing regarding built-in functions, although
type-generic functions such as __builtin_isinf work for the new types
and associated tests are included. There are at least two levels of
built-in function support possible for these types. The minimal
level, implemented in
<https://gcc.gnu.org/ml/gcc-patches/2016-06/msg01702.html> (which
needs updating to use dg-add-options), adds built-in functions similar
to those x86 has for __float128: __builtin_inf* __builtin_huge_val*,
__builtin_nan*, __builtin_nans*, __builtin_fabs*, __builtin_copysign*.
That would be sufficient for glibc to use the *f128 names for built-in
functions by default with *q used only for backwards compatibility
when using older GCC versions. That would also allow c_cpp_builtins's
flag_building_libgcc code, defining __LIBGCC_%s_FUNC_EXT__, to use
such suffixes rather than the present code hardcoding logic about
target-specific constant suffixes and how those relate to function
suffixes.
Full built-in function support would cover the full range of built-in
functions for existing floating-point types, adding variants for all
the new types, except for a few obsolescent functions and
non-type-generic variants of type-generic functions. Some but not all
references to such functions in GCC use macros such as CASE_FLT_FN to
be type-generic; a fair amount of work would be needed to identify all
places to update. Adding all those functions would enable
optimizations (for constant arguments and otherwise) for TS 18661-3
functions, but it would also substantially expand the enum listing
built-in functions (and we've had problems with the size of that enum
in the past), and increase the amount of built-in function
initialization to do - I don't know what the startup cost involved in
built-in function initialization is, but it would be something to
consider when adding such a large set of functions.
There are also a range of optimizations, in match.pd and elsewhere,
that only operate on the three standard floating-point types. Ideally
those would be made generic to all floating-point types, but this
patch does nothing in that regard. Special care would be needed
regarding making sure library functions to which calls are generated
actually exist. For example, if sqrt is called on an argument of type
_Float32, and the result converted to _Float32, this is equivalent to
doing a square root operation directly on _Float32. But if the user's
libm does not have the sqrtf32 function, or the name is not reserved
because __STDC_WANT_IEC_60559_TYPES_EXT__ was not defined before
including <math.h>, you can only do that optimization if you convert
to a call to sqrtf instead.
DECIMAL_DIG now relates to all supported floating-point formats, not
just float, double and long double; I've raised the question with WG14
of how this relates to the formula for DECIMAL_DIG in C11 not
considering this. TS 18661-3 says it also covers non-arithmetic
formats only supported by library conversion functions; this patch
does not add any target hooks to allow for the case where there are
such formats wider than any supported for arithmetic types (where
e.g. libc supports conversions involving the binary128 representation,
but the _Float128 type is not supported).
GCC provides its own <tgmath.h> for some targets. No attempt is made
to adapt this to handle the new types.
Nothing is done regarding debug info for the new types (see the
"Debugger support for __float128 type?" thread on gcc@, Sep/Oct 2015).
No __SIZEOF_*__ macros are added for the new types.
Nothing is done with do_warn_double_promotion.
Nothing is done to include the new types in those determining
max_align_t, although properly it should be sufficiently aligned for
any of those types.
The logic for usual arithmetic conversions in c_common_type relies on
TYPE_PRECISION for floating-point types, which is less than ideal
(doesn't necessarily correspond to whether one type's values are
subset of another); looking in more detail at the formats might be
better. But since I included code in build_common_tree_nodes to work
around rs6000 KFmode having precision 113 not 128, I think it should
work. Ideally one might have errors in generic code for the case
where the two types do not have one type's values a subset of the
other (which is undefined behavior). But the only case where this can
actually occur is mixing IBM long double with binary128 on powerpc,
and rs6000_invalid_binary_op deals with that at present. TS 18661-3
does not fully specify the type resulting from the usual arithmetic
conversions in the case where two _FloatNx types have the same set of
values; I arranged the code to prefer the greater value of N in that
case.
The __FP_FAST_FMA* macros are not extended to cover the new types,
since there are no corresponding built-in functions (if built-in
fmafN, fmafNx are added, the macros should be extended, and the new
macros documented). Also, only a limited set of modes is handled in
mode_has_fma.
Diagnostics relating to the use of the new types with -pedantic do not
try to distinguish them from purely nonstandard types such as __int128
and constant suffixes such as *q.
If you use an unsupported _FloatN / _FloatNx type you get a warning
about the type defaulting to int after the warning about the type not
being supported. That's less than ideal, but it's also a pre-existing
condition if you use __int128 on a 32-bit system where it's
unsupported.
Bootstrapped with no regressions on x86_64-pc-linux-gnu. Other
back-end changes minimally tested by building cc1 for ia64-linux-gnu,
powerpc64le-linux-gnu, pdp11-none (the last failed for unrelated
reasons).
PR c/32187
gcc:
* tree-core.h (TI_COMPLEX_FLOAT16_TYPE)
(TI_COMPLEX_FLOATN_NX_TYPE_FIRST, TI_COMPLEX_FLOAT32_TYPE)
(TI_COMPLEX_FLOAT64_TYPE, TI_COMPLEX_FLOAT128_TYPE)
(TI_COMPLEX_FLOAT32X_TYPE, TI_COMPLEX_FLOAT64X_TYPE)
(TI_COMPLEX_FLOAT128X_TYPE, TI_FLOAT16_TYPE, TI_FLOATN_TYPE_FIRST)
(TI_FLOATN_NX_TYPE_FIRST, TI_FLOAT32_TYPE, TI_FLOAT64_TYPE)
(TI_FLOAT128_TYPE, TI_FLOATN_TYPE_LAST, TI_FLOAT32X_TYPE)
(TI_FLOATNX_TYPE_FIRST, TI_FLOAT64X_TYPE, TI_FLOAT128X_TYPE)
(TI_FLOATNX_TYPE_LAST, TI_FLOATN_NX_TYPE_LAST): New enum
tree_index values.
(NUM_FLOATN_TYPES, NUM_FLOATNX_TYPES, NUM_FLOATN_NX_TYPES): New
macros.
(struct floatn_type_info): New structure type.
(floatn_nx_types): New variable declaration.
* tree.h (FLOATN_TYPE_NODE, FLOATN_NX_TYPE_NODE)
(FLOATNX_TYPE_NODE, float128_type_node, float64x_type_node)
(COMPLEX_FLOATN_NX_TYPE_NODE): New macros.
* tree.c (floatn_nx_types): New variable.
(build_common_tree_nodes): Initialize _FloatN, _FloatNx and
corresponding complex types.
* target.def (floatn_mode): New hook.
* targhooks.c: Include "real.h".
(default_floatn_mode): New function.
* targhooks.h (default_floatn_mode): New prototype.
* doc/extend.texi (Floating Types): Document _FloatN and _FloatNx
types.
* doc/sourcebuild.texi (float@var{n}, float@var{n}x): Document new
effective-target and dg-add-options keywords.
(float@var{n}_runtime, float@var{n}x_runtime, floatn_nx_runtime):
Document new effective-target keywords.
* doc/tm.texi.in (TARGET_FLOATN_MODE): New @hook.
* doc/tm.texi: Regenerate.
* ginclude/float.h (LDBL_DECIMAL_DIG): Define to
__LDBL_DECIMAL_DIG__, not __DECIMAL_DIG__.
[__STDC_WANT_IEC_60559_TYPES_EXT__]: Define macros from TS
18661-3.
* real.h (struct real_format): Add field ieee_bits.
* real.c (ieee_single_format, mips_single_format)
(motorola_single_format, spu_single_format, ieee_double_format)
(mips_double_format, motorola_double_format)
(ieee_extended_motorola_format, ieee_extended_intel_96_format)
(ieee_extended_intel_128_format)
(ieee_extended_intel_96_round_53_format, ibm_extended_format)
(mips_extended_format, ieee_quad_format, mips_quad_format)
(vax_f_format, vax_d_format, vax_g_format, decimal_single_format)
(decimal_double_format, decimal_quad_format, ieee_half_format)
(arm_half_format, real_internal_format: Initialize ieee_bits
field.
* config/i386/i386.c (ix86_init_builtin_types): Do not initialize
float128_type_node. Set float80_type_node to float64x_type_node
if appropriate and long_double_type_node not appropriate.
* config/ia64/ia64.c (ia64_init_builtins): Likewise.
* config/pdp11/pdp11.c (pdp11_f_format, pdp11_d_format):
Initialize ieee_bits field.
* config/rs6000/rs6000.c (TARGET_FLOATN_MODE): New macro.
(rs6000_init_builtins): Set ieee128_float_type_node to
float128_type_node.
(rs6000_floatn_mode): New function.
gcc/c:
* c-tree.h (cts_floatn_nx): New enum c_typespec_keyword value.
(struct c_declspecs): Add field floatn_nx_idx.
* c-decl.c (declspecs_add_type, finish_declspecs): Handle _FloatN
and _FloatNx type specifiers.
* c-parser.c (c_keyword_starts_typename, c_token_starts_declspecs)
(c_parser_declspecs, c_parser_attribute_any_word)
(c_parser_objc_selector): Use CASE_RID_FLOATN_NX.
* c-typeck.c (c_common_type): Handle _FloatN and _FloatNx types.
(convert_arguments): Avoid promoting _FloatN and _FloatNx types
narrower than double.
gcc/c-family:
* c-common.h (RID_FLOAT16, RID_FLOATN_NX_FIRST, RID_FLOAT32)
(RID_FLOAT64, RID_FLOAT128, RID_FLOAT32X, RID_FLOAT64X)
(RID_FLOAT128X): New enum rid values.
(CASE_RID_FLOATN_NX): New macro.
* c-common.c (c_common_reswords): Add _FloatN and _FloatNx
keywords.
(c_common_type_for_mode): Check for _FloatN and _FloatNx and
corresponding complex types.
(c_common_nodes_and_builtins): For non-C++, register _FloatN and
_FloatNx and corresponding complex types.
(keyword_begins_type_specifier): Use CASE_RID_FLOATN_NX.
* c-cppbuiltin.c (builtin_define_float_constants): Check _FloatN
and _FloatNx types for the widest type for determining
DECIMAL_DIG. Define __LDBL_DECIMAL_DIG__ as well as
__DECIMAL_DIG__ for long double. Handle FMA_SUFFIX being NULL.
(c_cpp_builtins): Call builtin_define_float_constants for _FloatN
and _FloatNx types.
* c-lex.c (interpret_float): Handle _FloatN and _FloatNx
constants.
* c-pretty-print.c (pp_c_floating_constant): Handle _FloatN and
_FloatNx types.
gcc/fortran:
* trans-types.h (float128_type_node): Rename to
gfc_float128_type_node.
(complex_float128_type_node): Rename to
gfc_complex_float128_type_node.
* iso-c-binding.def, trans-intrinsic.c, trans-types.c: All users
changed.
gcc/testsuite:
* lib/target-supports.exp (check_effective_target_float16)
(check_effective_target_float32, check_effective_target_float64)
(check_effective_target_float128, check_effective_target_float32x)
(check_effective_target_float64x)
(check_effective_target_float128x)
(check_effective_target_float16_runtime)
(check_effective_target_float32_runtime)
(check_effective_target_float64_runtime)
(check_effective_target_float128_runtime)
(check_effective_target_float32x_runtime)
(check_effective_target_float64x_runtime)
(check_effective_target_float128x_runtime)
(check_effective_target_floatn_nx_runtime)
(add_options_for_float16, add_options_for_float32)
(add_options_for_float64, add_options_for_float128)
(add_options_for_float32x, add_options_for_float64x)
(add_options_for_float128x): New procedures.
* gcc.dg/dfp/floatn.c, gcc.dg/float128-typeof.c,
gcc.dg/float128x-typeof.c, gcc.dg/float16-typeof.c,
gcc.dg/float32-typeof.c, gcc.dg/float32x-typeof.c,
gcc.dg/float64-typeof.c, gcc.dg/float64x-typeof.c,
gcc.dg/floatn-arithconv.c, gcc.dg/floatn-errs.c,
gcc.dg/floatn-typeof.h, gcc.dg/torture/float128-basic.c,
gcc.dg/torture/float128-complex.c,
gcc.dg/torture/float128-floath.c, gcc.dg/torture/float128-tg.c,
gcc.dg/torture/float128x-basic.c,
gcc.dg/torture/float128x-complex.c,
gcc.dg/torture/float128x-floath.c, gcc.dg/torture/float128x-tg.c,
gcc.dg/torture/float16-basic.c, gcc.dg/torture/float16-complex.c,
gcc.dg/torture/float16-floath.c, gcc.dg/torture/float16-tg.c,
gcc.dg/torture/float32-basic.c, gcc.dg/torture/float32-complex.c,
gcc.dg/torture/float32-floath.c, gcc.dg/torture/float32-tg.c,
gcc.dg/torture/float32x-basic.c,
gcc.dg/torture/float32x-complex.c,
gcc.dg/torture/float32x-floath.c, gcc.dg/torture/float32x-tg.c,
gcc.dg/torture/float64-basic.c, gcc.dg/torture/float64-complex.c,
gcc.dg/torture/float64-floath.c, gcc.dg/torture/float64-tg.c,
gcc.dg/torture/float64x-basic.c,
gcc.dg/torture/float64x-complex.c,
gcc.dg/torture/float64x-floath.c, gcc.dg/torture/float64x-tg.c,
gcc.dg/torture/floatn-basic.h, gcc.dg/torture/floatn-complex.h,
gcc.dg/torture/floatn-convert.c, gcc.dg/torture/floatn-floath.h,
gcc.dg/torture/floatn-tg.h,
gcc.dg/torture/fp-int-convert-float128-ieee-timode.c,
gcc.dg/torture/fp-int-convert-float128-ieee.c,
gcc.dg/torture/fp-int-convert-float128x-timode.c,
gcc.dg/torture/fp-int-convert-float128x.c,
gcc.dg/torture/fp-int-convert-float16-timode.c,
gcc.dg/torture/fp-int-convert-float16.c,
gcc.dg/torture/fp-int-convert-float32-timode.c,
gcc.dg/torture/fp-int-convert-float32.c,
gcc.dg/torture/fp-int-convert-float32x-timode.c,
gcc.dg/torture/fp-int-convert-float32x.c,
gcc.dg/torture/fp-int-convert-float64-timode.c,
gcc.dg/torture/fp-int-convert-float64.c,
gcc.dg/torture/fp-int-convert-float64x-timode.c,
gcc.dg/torture/fp-int-convert-float64x.c: New tests.
* gcc.dg/torture/fp-int-convert.h (TEST_I_F): Add argument for
maximum exponent of floating-point type. Use it in testing
whether 0x8...0 fits in the floating-point type. Always treat -1
(signed 0xf...f) as fitting in the floating-point type.
(M_OK1): New macro.
* gcc.dg/torture/fp-int-convert-double.c,
gcc.dg/torture/fp-int-convert-float.c,
gcc.dg/torture/fp-int-convert-float128-timode.c,
gcc.dg/torture/fp-int-convert-float128.c,
gcc.dg/torture/fp-int-convert-float80-timode.c,
gcc.dg/torture/fp-int-convert-float80.c,
gcc.dg/torture/fp-int-convert-long-double.c,
gcc.dg/torture/fp-int-convert-timode.c: Update calls to TEST_I_F.
libcpp:
* include/cpplib.h (CPP_N_FLOATN, CPP_N_FLOATNX)
(CPP_N_WIDTH_FLOATN_NX, CPP_FLOATN_SHIFT, CPP_FLOATN_MAX): New
macros.
* expr.c (interpret_float_suffix): Handle fN, fNx, FN and FNx
suffixes.
From-SVN: r239625
2016-08-19 19:43:26 +02:00
|
|
|
|
2016-08-19 Joseph Myers <joseph@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
PR c/32187
|
|
|
|
|
* trans-types.h (float128_type_node): Rename to
|
|
|
|
|
gfc_float128_type_node.
|
|
|
|
|
(complex_float128_type_node): Rename to
|
|
|
|
|
gfc_complex_float128_type_node.
|
|
|
|
|
* iso-c-binding.def, trans-intrinsic.c, trans-types.c: All users
|
|
|
|
|
changed.
|
|
|
|
|
|
2016-08-19 17:27:40 +02:00
|
|
|
|
2016-08-19 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
2016-08-19 17:30:33 +02:00
|
|
|
|
PR fortran/71014
|
|
|
|
|
* resolve.c (gfc_resolve): For ns->construct_entities don't save, clear
|
|
|
|
|
and restore omp state around the resolving.
|
|
|
|
|
|
2016-08-19 17:27:40 +02:00
|
|
|
|
PR fortran/69281
|
|
|
|
|
* trans-openmp.c (gfc_trans_omp_parallel, gfc_trans_omp_task,
|
|
|
|
|
gfc_trans_omp_target): Wrap gfc_trans_omp_code result in an extra
|
|
|
|
|
BIND_EXPR with its own forced BLOCK.
|
|
|
|
|
|
2016-08-19 16:19:51 +02:00
|
|
|
|
2016-08-19 Janne Blomqvist <jb@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
* intrinsics.texi (RANDOM_NUMBER): Remove reference to
|
|
|
|
|
init_random_seed in example.
|
|
|
|
|
(RANDOM_SEED): Remove warning to not set all seed values to 0.
|
|
|
|
|
|
2016-08-18 21:12:54 +02:00
|
|
|
|
2016-08-18 David Malcolm <dmalcolm@redhat.com>
|
|
|
|
|
|
|
|
|
|
* error.c (gfc_diagnostic_starter): Update for change to
|
|
|
|
|
diagnostic_show_locus.
|
|
|
|
|
|
2016-08-17 21:08:49 +02:00
|
|
|
|
2016-08-17 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR fortran/67496
|
|
|
|
|
* trans-array.c (trans_array_constructor): Load
|
|
|
|
|
expr->ts.u.cl->length_from_typespec only if expr->ts.type is
|
|
|
|
|
BT_CHARACTER.
|
|
|
|
|
|
2016-08-15 23:19:09 +02:00
|
|
|
|
2016-08-15 Fritz Reese <fritzoreese@gmail.com>
|
|
|
|
|
|
|
|
|
|
* lang.opt, invoke.texi: New flag -finit-derived.
|
|
|
|
|
* gfortran.h (gfc_build_default_init_expr, gfc_apply_init,
|
|
|
|
|
gfc_generate_initializer): New prototypes.
|
|
|
|
|
* expr.c (gfc_build_default_init_expr, gfc_apply_init,
|
|
|
|
|
component_initializer, gfc_generate_initializer): New functions.
|
|
|
|
|
* expr.c (gfc_default_initializer): Wrap gfc_generate_initializer.
|
|
|
|
|
* decl.c (build_struct): Move common code to gfc_apply_init.
|
|
|
|
|
* resolve.c (can_generate_init): New function.
|
|
|
|
|
* resolve.c (build_default_init_expr): Wrap gfc_build_default_init_expr.
|
|
|
|
|
* resolve.c (apply_default_init, resolve_fl_variable_derived): Use
|
|
|
|
|
gfc_generate_initializer.
|
|
|
|
|
* trans-decl.c (gfc_generate_function_code): Use
|
|
|
|
|
gfc_generate_initializer.
|
|
|
|
|
|
2016-08-15 21:34:48 +02:00
|
|
|
|
2016-08-15 Thomas Koenig <tkoenig@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
* frontend-passes.c (create_var): Set ts.deferred for
|
|
|
|
|
deferred-length character variables.
|
|
|
|
|
* dump-parse-tree.c (show_typespec): Also dump
|
|
|
|
|
is_c_interop, is_iso_c and deferred flags.
|
|
|
|
|
|
2016-08-15 11:50:33 +02:00
|
|
|
|
2016-08-15 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR debug/71906
|
|
|
|
|
* trans-decl.c (gfc_get_symbol_decl): Call gfc_finish_var_decl
|
|
|
|
|
for decl's character length before gfc_finish_var_decl on the
|
|
|
|
|
decl itself.
|
|
|
|
|
|
2016-08-14 20:19:10 +02:00
|
|
|
|
2016-08-14 Chung-Lin Tang <cltang@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
PR fortran/70598
|
|
|
|
|
* openmp.c (resolve_omp_clauses): Adjust use_device clause
|
|
|
|
|
handling to only allow pointers and arrays.
|
|
|
|
|
|
2016-08-12 12:30:47 +02:00
|
|
|
|
2016-08-12 Marek Polacek <polacek@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR c/7652
|
|
|
|
|
* decl.c (match_attr_spec): Add FALLTHRU.
|
|
|
|
|
* primary.c (match_arg_list_function): Likewise.
|
|
|
|
|
* resolve.c (resolve_operator): Adjust fall through comment.
|
|
|
|
|
(fixup_charlen): Add FALLTHRU.
|
|
|
|
|
(resolve_allocate_expr): Adjust fall through comment.
|
|
|
|
|
* trans-array.c (gfc_conv_ss_startstride): Add FALLTHRU.
|
|
|
|
|
* trans-intrinsic.c (gfc_conv_intrinsic_len): Adjust fall through
|
|
|
|
|
comment.
|
|
|
|
|
|
2016-08-11 10:58:55 +02:00
|
|
|
|
2016-08-11 Janne Blomqvist <jb@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
* check.c (gfc_check_random_seed): Use new seed size in check.
|
|
|
|
|
* intrinsic.texi (RANDOM_NUMBER): Updated documentation.
|
|
|
|
|
(RANDOM_SEED): Likewise.
|
|
|
|
|
|
2016-08-08 21:48:48 +02:00
|
|
|
|
2016-08-08 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR fortran/72716
|
|
|
|
|
* openmp.c (gfc_match_omp_declare_simd): Don't stick anything into
|
|
|
|
|
BLOCK DATA ns, it will be rejected later.
|
|
|
|
|
|
2016-08-08 11:58:21 +02:00
|
|
|
|
2016-08-08 Andre Vehreschild <vehre@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
PR fortran/71936
|
|
|
|
|
* trans-array.c (gfc_array_allocate): When SOURCE= is a function
|
|
|
|
|
stick with the ref of the object to allocate.
|
|
|
|
|
|
2016-08-08 11:49:37 +02:00
|
|
|
|
2016-08-08 Andre Vehreschild <vehre@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
PR fortran/72698
|
|
|
|
|
* trans-stmt.c (gfc_trans_allocate): Prevent generating code for
|
|
|
|
|
copy of zero sized string and with it an ICE.
|
|
|
|
|
|
2016-08-08 10:11:29 +02:00
|
|
|
|
2016-08-08 Andre Vehreschild <vehre@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
PR fortran/70524
|
|
|
|
|
* trans-array.c (gfc_trans_dummy_array_bias): Ensure that the
|
|
|
|
|
location information is correctly set.
|
|
|
|
|
* trans-decl.c (gfc_trans_deferred_vars): Set the locus of the
|
|
|
|
|
current construct early.
|
|
|
|
|
|
2016-08-03 16:55:26 +02:00
|
|
|
|
2016-08-03 Fritz Reese <fritzoreese@gmail.com>
|
|
|
|
|
|
|
|
|
|
* lang.opt: New option -fdec-intrinsic-ints.
|
|
|
|
|
* options.c (set_dec_flags): Enable with -fdec.
|
|
|
|
|
* gfortran.texi, invoke.texi, intrinsics.texi: Update documentation.
|
|
|
|
|
* intrinsic.c (add_function, add_subroutine): New B/I/J/K intrinsic
|
|
|
|
|
variants.
|
|
|
|
|
|
2016-09-05 21:42:42 +02:00
|
|
|
|
2016-07-30 Steven G. Kargl <kargl@gcc.gnu.org>
|
2016-07-31 03:51:37 +02:00
|
|
|
|
|
|
|
|
|
PR fortran/41922
|
|
|
|
|
* target-memory.c (expr_to_char): Pass in locus and use it in error
|
|
|
|
|
messages.
|
|
|
|
|
(gfc_merge_initializers): Ditto.
|
|
|
|
|
* target-memory.h: Update prototype for gfc_merge_initializers ().
|
|
|
|
|
* trans-common.c (get_init_field): Use the correct locus.
|
|
|
|
|
|
2016-07-31 01:01:06 +02:00
|
|
|
|
2016-07-30 Steven G. Kargl <kargl@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
PR fortran/68566
|
|
|
|
|
* check.c (gfc_check_reshape): Check for constant expression.
|
|
|
|
|
|
2016-07-30 22:05:10 +02:00
|
|
|
|
2016-07-30 Steven G. Kargl <kargl@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
PR fortran/69867
|
|
|
|
|
* decl.c (build_struct): Ensure that pointers point to something.
|
|
|
|
|
|
2016-07-30 21:24:49 +02:00
|
|
|
|
2016-07-30 Steven G. Kargl <kargl@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
PR fortran/69962
|
|
|
|
|
* decl.c (gfc_set_constant_character_len): if expr is not
|
|
|
|
|
constant issue an error instead of an ICE.
|
|
|
|
|
|
2016-07-30 20:18:49 +02:00
|
|
|
|
2016-07-30 Steven G. Kargl <kargl@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
PR fortran/70006
|
|
|
|
|
* io.c (gfc_resolve_dt): Use correct locus.
|
|
|
|
|
* resolve.c (resolve_branch): Ditto.
|
|
|
|
|
|
2016-07-30 18:19:14 +02:00
|
|
|
|
2016-07-30 Steven G. Kargl <kargl@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
PR fortran/71730
|
|
|
|
|
* decl.c (char_len_param_value): Check return value of
|
|
|
|
|
gfc_reduce_init_expr().
|
|
|
|
|
|
2016-07-29 10:04:01 +02:00
|
|
|
|
2016-07-29 Dominik Vogt <vogt@linux.vnet.ibm.com>
|
|
|
|
|
|
|
|
|
|
* trans-array.c (gfc_conv_array_ref): Fix allocation of diagnostic
|
|
|
|
|
message (was too small).
|
|
|
|
|
|
2016-07-29 01:12:23 +02:00
|
|
|
|
2016-07-28 Steven G. Kargl <kargl@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
PR fortran/71067
|
|
|
|
|
* decl.c (match_data_constant): On error, set 'result' to NULL.
|
|
|
|
|
|
2016-07-28 21:04:12 +02:00
|
|
|
|
2016-07-28 Steven G. Kargl <kargl@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
PR fortran/71799
|
|
|
|
|
* resolve.c(gfc_resolve_iterator): Failure of type conversion need
|
|
|
|
|
not ICE.
|
|
|
|
|
|
2016-07-28 19:48:54 +02:00
|
|
|
|
2016-07-28 Steven G. Kargl <kargl@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
PR fortran/71859
|
|
|
|
|
* check.c(numeric_check): Prevent ICE. Issue error for invalid
|
|
|
|
|
subroutine as an actual argument when numeric argument is expected.
|
|
|
|
|
|
2016-07-28 16:47:02 +02:00
|
|
|
|
2016-07-28 Steven G. Kargl <kargl@gcc.gnu.org>
|
|
|
|
|
Thomas Koenig <tkoenig@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
PR fortran/71883
|
|
|
|
|
* frontend-passes.c (gfc_run_passes): Bail out if there are any
|
|
|
|
|
errors.
|
|
|
|
|
* error.c (gfc_internal_error): If there are any errors in the
|
|
|
|
|
buffer, exit with EXIT_FAILURE.
|
|
|
|
|
|
2016-07-28 13:21:53 +02:00
|
|
|
|
2016-07-28 Renlin Li <renlin.li@arm.com>
|
|
|
|
|
|
|
|
|
|
Revert
|
|
|
|
|
2016-07-19 Thomas Koenig <tkoenig@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
PR fortran/71902
|
|
|
|
|
* dependency.c (gfc_check_dependency): Use dep_ref. Handle case
|
|
|
|
|
if identical is true and two array element references differ.
|
|
|
|
|
(gfc_dep_resovler): Move most of the code to dep_ref.
|
|
|
|
|
(dep_ref): New function.
|
|
|
|
|
* frontend-passes.c (realloc_string_callback): Name temporary
|
|
|
|
|
variable "realloc_string".
|
|
|
|
|
|
2016-07-27 00:42:49 +02:00
|
|
|
|
2016-07-26 Steven G. Kargl <kargl@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
PR fortran/71862
|
|
|
|
|
* class.c: Remove assert. Iterate over component only if non-null.
|
|
|
|
|
|
2016-07-22 20:53:11 +02:00
|
|
|
|
2016-07-22 Steven G. Kargl <kargl@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
PR fortran/71935
|
2016-07-28 16:47:02 +02:00
|
|
|
|
* check.c (is_c_interoperable): Simplify right expression.
|
2016-07-22 20:53:11 +02:00
|
|
|
|
|
2016-07-22 12:38:32 +02:00
|
|
|
|
2016-07-22 Thomas Koenig <tkoenig@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
PR fortran/71795
|
|
|
|
|
* frontend-passes.c (combine_array_constructor): Don't
|
|
|
|
|
do anything if the expression is inside an array iterator.
|
|
|
|
|
|
2016-07-22 11:46:54 +02:00
|
|
|
|
2016-07-22 Andre Vehreschild <vehre@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
* expr.c (gfc_find_stat_co): Fixed whitespaces.
|
|
|
|
|
* gfortran.texi: Fixed typos and reversed meaning of caf_get()'s
|
|
|
|
|
src and dst description.
|
|
|
|
|
* trans-decl.c (gfc_build_builtin_function_decls): Fixed style
|
|
|
|
|
and corrected fnspec for caf functions.
|
|
|
|
|
* trans-intrinsic.c (gfc_conv_intrinsic_caf_get): Fixed style.
|
|
|
|
|
(conv_caf_send): Dito.
|
|
|
|
|
|
2016-07-19 23:25:33 +02:00
|
|
|
|
2016-07-19 Thomas Koenig <tkoenig@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
PR fortran/71902
|
|
|
|
|
* dependency.c (gfc_check_dependency): Use dep_ref. Handle case
|
|
|
|
|
if identical is true and two array element references differ.
|
|
|
|
|
(gfc_dep_resovler): Move most of the code to dep_ref.
|
|
|
|
|
(dep_ref): New function.
|
|
|
|
|
* frontend-passes.c (realloc_string_callback): Name temporary
|
|
|
|
|
variable "realloc_string".
|
|
|
|
|
|
2016-07-17 22:13:41 +02:00
|
|
|
|
2016-07-17 Fritz Reese <fritzoreese@gmail.com>
|
|
|
|
|
|
|
|
|
|
PR fortran/71523
|
|
|
|
|
* trans-decl.c (gfc_finish_var_decl): Replace automatic initializer with
|
|
|
|
|
a static one.
|
|
|
|
|
|
2016-07-15 21:58:55 +02:00
|
|
|
|
2016-07-15 Jerry DeLisle <jvdelisle@gcc.gnu.org>
|
2016-09-05 21:42:42 +02:00
|
|
|
|
Marco Restelli <mrestelli@gmail.com>
|
2016-07-15 21:58:55 +02:00
|
|
|
|
|
|
|
|
|
PR fortran/62125
|
|
|
|
|
* symbol.c (select_type_insert_tmp): Recursively call self to take care
|
|
|
|
|
of nested select type.
|
|
|
|
|
|
2016-07-15 16:03:35 +02:00
|
|
|
|
2016-07-15 Cesar Philippidis <cesar@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* openmp.c (gfc_match_omp_clauses): Scan for clause vector_length
|
|
|
|
|
before vector.
|
|
|
|
|
|
2016-07-15 11:28:47 +02:00
|
|
|
|
2016-07-15 Andre Vehreschild <vehre@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
PR fortran/71807
|
|
|
|
|
* trans-expr.c (gfc_trans_subcomponent_assign): Special casing
|
|
|
|
|
when allocatable component is set to null() in initializer.
|
|
|
|
|
|
2016-07-14 22:54:40 +02:00
|
|
|
|
2016-07-14 Steven G. Kargl <kargl@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
PR fortran/29819
|
|
|
|
|
* parse.c (parse_contained): Use proper locus.
|
2016-07-28 16:47:02 +02:00
|
|
|
|
|
2016-07-14 19:07:47 +02:00
|
|
|
|
2016-07-14 Andre Vehreschild <vehre@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
PR fortran/70842
|
|
|
|
|
* simplify.c (gfc_simplify_len): Only for unlimited polymorphic
|
|
|
|
|
types replace the expression's _data ref with a _len ref.
|
|
|
|
|
|
2016-07-10 00:18:29 +02:00
|
|
|
|
2016-07-09 Thomas Koenig <tkoenig@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
PR fortran/71783
|
|
|
|
|
* frontend-passes.c (create_var): Always allocate a charlen
|
|
|
|
|
for character variables.
|
|
|
|
|
|
2016-07-09 00:24:44 +02:00
|
|
|
|
2016-07-08 Steven G. Kargl <kargl@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
PR fortran/68426
|
|
|
|
|
* simplify (gfc_simplify_spread): Adjust locus.
|
|
|
|
|
|
2016-07-08 20:34:55 +02:00
|
|
|
|
2016-07-08 Cesar Philippidis <cesar@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* parse.c (matcha): Define.
|
|
|
|
|
(decode_oacc_directive): Add spec_only local var and set it. Use
|
|
|
|
|
matcha to parse acc directives except for routine and declare. Return
|
|
|
|
|
ST_GET_FCN_CHARACTERISTICS if a non-declarative directive could be
|
|
|
|
|
matched.
|
|
|
|
|
|
2016-07-08 10:39:56 +02:00
|
|
|
|
2016-07-08 Martin Liska <mliska@suse.cz>
|
|
|
|
|
|
|
|
|
|
* invoke.texi (Wundefined-do-loop): Enhance documentation.
|
|
|
|
|
|
2016-07-08 06:36:16 +02:00
|
|
|
|
2016-07-07 Jerry DeLisle <jvdelisle@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
PR fortran/71764
|
|
|
|
|
* trans-expr.c (gfc_trans_structure_assign): Remove assert.
|
|
|
|
|
|
2016-07-07 15:15:39 +02:00
|
|
|
|
2016-07-07 Martin Liska <mliska@suse.cz>
|
|
|
|
|
|
|
|
|
|
* lang.opt (Wundefined-do-loop): New option.
|
|
|
|
|
* resolve.c (gfc_resolve_iterator): Warn for Wundefined-do-loop.
|
|
|
|
|
(gfc_trans_simple_do): Generate a c-style loop.
|
|
|
|
|
(gfc_trans_do): Fix GNU coding style.
|
|
|
|
|
* invoke.texi: Mention the new warning.
|
|
|
|
|
|
2016-07-07 15:11:05 +02:00
|
|
|
|
2016-07-07 Martin Liska <mliska@suse.cz>
|
|
|
|
|
|
|
|
|
|
* trans-stmt.c (gfc_trans_do): Add expect builtin for DO
|
|
|
|
|
loops with step bigger than +-1.
|
|
|
|
|
|
2016-07-05 17:33:06 +02:00
|
|
|
|
2016-07-05 Alessandro Fanfarillo <fanfarillo.gcc@gmail.com>
|
|
|
|
|
|
|
|
|
|
* array.c (gfc_match_array_ref): Add parsing support for
|
|
|
|
|
STAT= attribute in CAF reference.
|
|
|
|
|
* expr.c (gfc_find_stat_co): New function that returns
|
|
|
|
|
the STAT= assignment.
|
|
|
|
|
* gfortran.h (gfc_array_ref): New member.
|
|
|
|
|
* trans-decl.c (gfc_build_builtin_function_decls):
|
|
|
|
|
new attribute for caf_get and caf_send functions.
|
|
|
|
|
* trans-intrinsic.c (gfc_conv_intrinsic_caf_get): Passing
|
|
|
|
|
the stat attribute to external function.
|
|
|
|
|
(gfc_conv_intrinsic_caf_send): Ditto.
|
|
|
|
|
|
2016-07-05 14:06:22 +02:00
|
|
|
|
2016-07-05 Andre Vehreschild <vehre@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
PR fortran/71623
|
|
|
|
|
* trans-stmt.c (gfc_trans_allocate): Add code of pre block of typespec
|
|
|
|
|
in allocate to parent block.
|
|
|
|
|
|
2016-07-04 23:04:55 +02:00
|
|
|
|
2016-07-04 Jerry DeLisle <jvdelisle@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
PR fortran/66575
|
|
|
|
|
* decl.c (match_procedure_interface): Exit loop if procedure
|
|
|
|
|
interface refers to itself.
|
|
|
|
|
|
2016-07-04 21:14:54 +02:00
|
|
|
|
2016-07-04 Jerry DeLisle <jvdelisle@gcc.gnu.org>
|
|
|
|
|
Steven G. Kargl <kargl@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
PR fortran/35849
|
|
|
|
|
* simplify.c (gfc_simplify_ishftc): Check that absolute value of
|
|
|
|
|
SHIFT is less than or equal to SIZE.
|
|
|
|
|
|
2016-07-01 17:13:28 +02:00
|
|
|
|
2016-07-01 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
2016-07-01 22:52:54 +02:00
|
|
|
|
PR fortran/71687
|
|
|
|
|
* f95-lang.c (struct binding_level): Add reversed field.
|
|
|
|
|
(clear_binding_level): Adjust initializer.
|
|
|
|
|
(getdecls): If reversed is clear, set it and nreverse the names
|
|
|
|
|
chain before returning it.
|
|
|
|
|
(poplevel): Use getdecls.
|
|
|
|
|
* trans-decl.c (gfc_generate_function_code, gfc_process_block_locals):
|
|
|
|
|
Use nreverse to pushdecl decls in the declaration order.
|
|
|
|
|
|
2016-07-01 17:13:28 +02:00
|
|
|
|
PR fortran/71717
|
|
|
|
|
* trans-openmp.c (gfc_omp_privatize_by_reference): Return false
|
|
|
|
|
for GFC_DECL_ASSOCIATE_VAR_P with POINTER_TYPE.
|
|
|
|
|
|
2016-06-30 19:39:52 +02:00
|
|
|
|
2016-06-30 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
2016-06-30 19:45:21 +02:00
|
|
|
|
PR fortran/71704
|
|
|
|
|
* parse.c (matchs, matcho): Move right before decode_omp_directive.
|
|
|
|
|
If spec_only, only gfc_match the keyword and if successful, goto
|
|
|
|
|
do_spec_only.
|
|
|
|
|
(matchds, matchdo): Define.
|
|
|
|
|
(decode_omp_directive): Add spec_only local var and set it.
|
|
|
|
|
Use matchds or matchdo macros instead of matchs or matcho
|
|
|
|
|
for declare target, declare simd, declare reduction and threadprivate
|
|
|
|
|
directives. Return ST_GET_FCN_CHARACTERISTICS if a non-declarative
|
|
|
|
|
directive could be matched.
|
|
|
|
|
(next_statement): For ST_GET_FCN_CHARACTERISTICS restore
|
|
|
|
|
gfc_current_locus from old_locus even if there is no label.
|
|
|
|
|
|
2016-06-30 19:39:52 +02:00
|
|
|
|
PR fortran/71705
|
|
|
|
|
* trans-openmp.c (gfc_trans_omp_clauses): Set TREE_ADDRESSABLE on
|
|
|
|
|
decls in to/from clauses.
|
|
|
|
|
|
2016-06-29 20:48:37 +02:00
|
|
|
|
2016-06-29 Jerry DeLisle <jvdelisle@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
PR fortran/71686
|
|
|
|
|
* scanner.c (gfc_next_char_literal): Only decrement nextc if it
|
|
|
|
|
is not NULL.
|
|
|
|
|
|
2016-06-29 18:04:42 +02:00
|
|
|
|
2016-06-29 Cesar Philippidis <cesar@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* openmp.c (match_oacc_clause_gang): Rename to ...
|
|
|
|
|
(match_oacc_clause_gwv): this. Add support for OpenACC worker and
|
|
|
|
|
vector clauses.
|
|
|
|
|
(gfc_match_omp_clauses): Use match_oacc_clause_gwv for
|
|
|
|
|
OMP_CLAUSE_{GANG,WORKER,VECTOR}. Propagate any MATCH_ERRORs for
|
|
|
|
|
invalid OMP_CLAUSE_{ASYNC,WAIT,GANG,WORKER,VECTOR} clauses.
|
|
|
|
|
(gfc_match_oacc_wait): Propagate MATCH_ERROR for invalid
|
|
|
|
|
oacc_expr_lists. Adjust the first and needs_space arguments to
|
|
|
|
|
gfc_match_omp_clauses.
|
|
|
|
|
|
2016-06-29 09:30:31 +02:00
|
|
|
|
2016-06-29 Richard Biener <rguenther@suse.de>
|
|
|
|
|
|
|
|
|
|
PR middle-end/71002
|
|
|
|
|
* f95-lang.c (LANG_HOOKS_GET_ALIAS_SET): Remove (un-)define.
|
|
|
|
|
(gfc_get_alias_set): Remove.
|
|
|
|
|
|
2016-06-26 03:03:19 +02:00
|
|
|
|
2016-06-25 Jerry DeLisle <jvdelisle@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
PR fortran/71649
|
|
|
|
|
* module.c (create_intrinsic_function): Check for NULL values and
|
|
|
|
|
return after giving error.
|
|
|
|
|
|
2016-06-21 22:57:20 +02:00
|
|
|
|
2016-06-21 Michael Meissner <meissner@linux.vnet.ibm.com>
|
|
|
|
|
|
|
|
|
|
* trans-types.c (gfc_build_complex_type): Move setting complex
|
|
|
|
|
MODE to layout_type, instead of setting it ahead of time by the
|
|
|
|
|
caller.
|
|
|
|
|
|
2016-06-21 20:36:25 +02:00
|
|
|
|
2016-06-21 Tobias Burnus <burnus@net-b.de>
|
|
|
|
|
|
|
|
|
|
PR fortran/71068
|
|
|
|
|
* resolve.c (resolve_function): Don't resolve caf_get/caf_send.
|
|
|
|
|
(check_data_variable): Strip-off caf_get before checking.
|
|
|
|
|
|
2016-06-20 20:46:43 +02:00
|
|
|
|
2016-06-20 Tobias Burnus <burnus@net-b.de>
|
|
|
|
|
|
2016-06-21 20:36:25 +02:00
|
|
|
|
PR fortran/71194
|
2016-06-20 20:46:43 +02:00
|
|
|
|
* trans-expr.c (gfc_trans_pointer_assignment): Correctly handle
|
|
|
|
|
RHS pointer functions.
|
|
|
|
|
|
2016-06-19 12:38:16 +02:00
|
|
|
|
2016-06-19 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
* class.c (gfc_add_class_array_ref): Call gfc_add_data_component()
|
|
|
|
|
instead of gfc_add_component_ref().
|
|
|
|
|
(gfc_get_len_component): Call gfc_add_len_component() instead of
|
|
|
|
|
gfc_add_component_ref().
|
|
|
|
|
* trans-intrinsic.c (gfc_conv_intrinsic_loc): Call
|
|
|
|
|
gfc_add_data_component() instead of gfc_add_component_ref().
|
|
|
|
|
* trans.c (gfc_add_finalizer_call): Call
|
|
|
|
|
gfc_add_final_component() and gfc_add_size_component() instead
|
|
|
|
|
of gfc_add_component_ref.
|
|
|
|
|
|
2016-06-18 22:06:23 +02:00
|
|
|
|
2016-06-18 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
* trans-types.c (gfc_typenode_for_spec): Commentary typo fix.
|
|
|
|
|
|
2016-06-17 22:32:03 +02:00
|
|
|
|
2016-06-17 Cesar Philippidis <cesar@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* openmp.c (match_acc): New generic function to parse OpenACC
|
|
|
|
|
directives.
|
|
|
|
|
(gfc_match_oacc_parallel_loop): Use it.
|
|
|
|
|
(gfc_match_oacc_parallel): Likewise.
|
|
|
|
|
(gfc_match_oacc_kernels_loop): Likewise.
|
|
|
|
|
(gfc_match_oacc_kernels): Likewise.
|
|
|
|
|
(gfc_match_oacc_data): Likewise.
|
|
|
|
|
(gfc_match_oacc_host_data): Likewise.
|
|
|
|
|
(gfc_match_oacc_loop): Likewise.
|
|
|
|
|
(gfc_match_oacc_enter_data): Likewise.
|
|
|
|
|
(gfc_match_oacc_exit_data): Likewise.
|
|
|
|
|
|
2016-06-16 18:05:25 +02:00
|
|
|
|
2016-06-16 Martin Liska <mliska@suse.cz>
|
|
|
|
|
|
|
|
|
|
* trans-stmt.c (gfc_trans_simple_do): Predict the edge.
|
|
|
|
|
|
2016-06-16 14:21:55 +02:00
|
|
|
|
2016-06-16 Martin Liska <mliska@suse.cz>
|
|
|
|
|
|
|
|
|
|
* trans-array.c (gfc_array_allocate): Do not generate expect
|
|
|
|
|
stmt.
|
|
|
|
|
* trans.c (gfc_allocate_using_malloc): Properly set FAIL_ALLOC
|
|
|
|
|
predictor for malloc return value.
|
|
|
|
|
(gfc_allocate_allocatable): Use REALLOC predictor instead of
|
|
|
|
|
FAIL_ALLOC.
|
|
|
|
|
(gfc_deallocate_with_status): Likewise.
|
|
|
|
|
|
2016-06-13 09:48:25 +02:00
|
|
|
|
2016-06-13 Paul Thomas <pault@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
PR fortran/70673
|
|
|
|
|
* frontend-passes.c (realloc_string_callback): Add a call to
|
|
|
|
|
gfc_dep_compare_expr.
|
|
|
|
|
|
2016-06-11 21:19:43 +02:00
|
|
|
|
2016-06-11 Dominique d'Humieres <dominiq@lps.ens.fr>
|
|
|
|
|
|
|
|
|
|
PR fortran/60751
|
|
|
|
|
* io.c (gfc_resolve_dt): Replace GFC_STD_GNU with GFC_STD_LEGACY.
|
|
|
|
|
|
2016-06-10 11:22:38 +02:00
|
|
|
|
2016-06-10 Thomas Schwinge <thomas@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
PR c/71381
|
|
|
|
|
* openmp.c (gfc_match_oacc_cache): Add comment.
|
|
|
|
|
|
2016-06-05 21:49:59 +02:00
|
|
|
|
2016-06-05 Jerry DeLisle <jvdelisle@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
PR fortran/71404
|
|
|
|
|
* io.c (match_io): For READ, commit in pending symbols in the
|
|
|
|
|
current statement before trying to match an expression so that
|
|
|
|
|
if the match fails and we undo symbols we dont toss good symbols.
|
|
|
|
|
|
2016-06-05 19:20:54 +02:00
|
|
|
|
2016-06-05 Andre Vehreschild <vehre@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
PR fortran/69659
|
|
|
|
|
* trans-array.c (gfc_trans_dummy_array_bias): For class arrays use
|
|
|
|
|
the address of the _data component to reference the arrays data
|
|
|
|
|
component.
|
|
|
|
|
|
2016-06-03 16:25:12 +02:00
|
|
|
|
2016-06-03 Chung-Lin Tang <cltang@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* trans-openmp.c (gfc_trans_omp_reduction_list): Add mark_addressable
|
|
|
|
|
bool parameter, set reduction clause DECLs as addressable when true.
|
|
|
|
|
(gfc_trans_omp_clauses): Pass clauses->async to
|
|
|
|
|
gfc_trans_omp_reduction_list, add comment describing OpenACC situation.
|
|
|
|
|
|
2016-06-01 19:06:50 +02:00
|
|
|
|
2016-06-01 Jerry DeLisle <jvdelisle@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
PR fortran/52393
|
|
|
|
|
* io.c (match_io): For READ, try to match a default character
|
|
|
|
|
expression. If found, set the dt format expression to this,
|
|
|
|
|
otherwise go back and try control list.
|
|
|
|
|
|
2016-06-01 16:30:00 +02:00
|
|
|
|
2016-06-01 Paul Thomas <pault@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
PR fortran/71156
|
|
|
|
|
* decl.c (copy_prefix): Add checks that the module procedure
|
|
|
|
|
declaration prefixes are compliant with the interface. Invert
|
|
|
|
|
order of existing elemental and pure checks.
|
|
|
|
|
* resolve.c (resolve_fl_procedure): Invert order of elemental
|
|
|
|
|
and pure errors.
|
|
|
|
|
|
2016-06-01 14:21:38 +02:00
|
|
|
|
2016-06-01 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
* parse.c (case_decl): Move ST_OMP_* to ...
|
|
|
|
|
(case_omp_decl): ... here, new macro.
|
|
|
|
|
(verify_st_order): For case_omp_decl, complain about
|
|
|
|
|
p->state >= ORDER_EXEC, but don't change p->state otherwise.
|
|
|
|
|
|
2016-05-26 21:12:27 +02:00
|
|
|
|
2016-05-26 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
* openmp.c (resolve_omp_clauses): Warn if chunk_size is known not to
|
|
|
|
|
be positive.
|
|
|
|
|
|
2016-05-24 06:15:39 +02:00
|
|
|
|
2016-05-23 Jerry DeLisle <jvdelisle@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
PR fortran/66461
|
|
|
|
|
* scanner.c (gfc_next_char_literal): Clear end_flag when adjusting
|
|
|
|
|
current locus back to old_locus.
|
|
|
|
|
|
2016-05-20 20:49:24 +02:00
|
|
|
|
2016-05-20 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR fortran/71204
|
|
|
|
|
* frontend-passes.c (realloc_string_callback): Clear inserted_block
|
|
|
|
|
and changed_statement before calling create_var.
|
|
|
|
|
|
2016-05-15 20:34:57 +02:00
|
|
|
|
2016-05-15 Harald Anlauf <anlauf@gmx.de>
|
|
|
|
|
|
|
|
|
|
PR fortran/69603
|
|
|
|
|
* interface.c (compare_parameter): Check for non-NULL pointer.
|
|
|
|
|
|
2016-05-14 18:00:35 +02:00
|
|
|
|
2016-05-14 Fritz Reese <fritzoreese@gmail.com>
|
|
|
|
|
|
|
|
|
|
* gfortran.texi: Update example of DEC UNION extension.
|
|
|
|
|
|
2016-05-14 17:29:13 +02:00
|
|
|
|
2016-05-14 Fritz Reese <fritzoreese@gmail.com>
|
|
|
|
|
|
|
|
|
|
PR fortran/71047
|
|
|
|
|
* expr.c (gfc_default_initializer): Avoid extra component refs in
|
|
|
|
|
constructors for derived types and classes.
|
|
|
|
|
|
2016-05-11 15:16:48 +02:00
|
|
|
|
2016-05-11 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR fortran/70855
|
|
|
|
|
* frontend-passes.c (inline_matmul_assign): Disable in !$omp workshare.
|
|
|
|
|
|
2016-05-09 09:42:45 +02:00
|
|
|
|
2016-05-09 Richard Biener <rguenther@suse.de>
|
|
|
|
|
|
|
|
|
|
PR fortran/70937
|
|
|
|
|
* trans-decl.c: Include gimplify.h for unshare_expr.
|
|
|
|
|
(gfc_trans_vla_one_sizepos): Unshare exprs before inserting
|
|
|
|
|
them into the IL.
|
|
|
|
|
|
re PR fortran/56226 (Add support for DEC UNION and MAP extensions)
2016-05-07 Fritz Reese <fritzoreese@gmail.com>
PR fortran/56226
* module.c (dt_upper_string): Rename to gfc_dt_upper_string
(dt_lower_string): Likewise.
* gfortran.h: Make new gfc_dt_upper/lower_string global.
* class.c: Use gfc_dt_upper_string.
* decl.c: Likewise.
* symbol.c: Likewise.
* resolve.c (resolve_component): New function.
(resolve_fl_derived0): Move component loop code to resolve_component.
* parse.c (check_component): New function.
(parse_derived): Move loop code to check_component.
* lang.opt, invoke.texi, options.c : New option -fdec-structure.
* libgfortran.h (bt): New basic type BT_UNION.
* gfortran.h (gfc_option): New option -fdec-structure.
(gfc_get_union_type, gfc_compare_union_types): New prototypes.
(gfc_bt_struct, gfc_fl_struct, case_bt_struct, case_fl_struct): New
macros.
(gfc_find_component): Change prototype.
* match.h (gfc_match_member_sep, gfc_match_map, gfc_match_union,
gfc_match_structure_decl): New prototypes.
* parse.h (gfc_comp_struct): New macro.
* symbol.c (gfc_find_component): Search for components in nested unions
* class.c (insert_component_ref, gfc_add_component_ref, add_proc_comp,
copy_vtab_proc_comps): Update calls to gfc_find_component.
* primary.c (gfc_convert_to_structure_constructor): Likewise.
* symbol.c (gfc_add_component): Likewise.
* resolve.c (resolve_typebound_function, resolve_typebound_subroutine,
resolve_typebound_procedure, resolve_component, resolve_fl_derived):
Likewise.
* expr.c (get_union_init, component_init): New functions.
* decl.c (match_clist_expr, match_record_decl, get_struct_decl,
gfc_match_map, gfc_match_union, gfc_match_structure_decl): Likewise.
* interface.c (compare_components, gfc_compare_union_types): Likewise.
* match.c (gfc_match_member_sep): Likewise.
* parse.c (check_component, parse_union, parse_struct_map): Likewise.
* resolve.c (resolve_fl_struct): Likewise.
* symbol.c (find_union_component): Likewise.
* trans-types.c (gfc_get_union_type): Likewise.
* parse.c (parse_derived): Use new functions.
* interface.c (gfc_compare_derived_types, gfc_compare_types): Likewise.
* expr.c (gfc_default_initializer): Likewise.
* gfortran.texi: Support for DEC structures, unions, and maps.
* gfortran.h (gfc_statement, sym_flavor): Likewise.
* check.c (gfc_check_kill_sub): Likewise.
* expr.c (gfc_copy_expr, simplify_const_ref,
gfc_has_default_initializer): Likewise.
* decl.c (build_sym, match_data_constant, add_init_expr_to_sym,
match_pointer_init, build_struct, variable_decl,
gfc_match_decl_type_spec, gfc_mach_data-decl, gfc_match_entry,
gfc_match_end, gfc_match_derived_decl): Likewise.
* interface.c (check_interface0, check_interface1,
gfc_search_interface): Likewise.
* misc.c (gfc_basic_typename, gfc_typename): Likewise.
* module.c (add_true_name, build_tnt, bt_types, mio_typespec,
fix_mio_expr, load_needed, mio_symbol, read_module, write_symbol,
gfc_get_module_backend_decl): Likewise.
* parse.h (gfc_compile_state): Likewise.
* parse.c (decode_specification_statement, decode_statement,
gfc_ascii_statement, verify_st_order, parse_spec): Likewise.
* primary.c (gfc_match_varspec, gfc_match_structure_constructor,
gfc_match_rvalue, match_variable): Likewise.
* resolve.c (find_arglists, resolve_structure_cons,
is_illegal_recursion, resolve_generic_f, get_declared_from_expr,
resolve_typebound_subroutine, resolve_allocate_expr,
nonscalar_typebound_assign, generate_component_assignments,
resolve_fl_variable_derived, check_defined_assignments,
resolve_component, resolve_symbol, resolve_equivalence_derived):
Likewise.
* symbol.c (flavors, check_conflict, gfc_add_flavor, gfc_use_derived,
gfc_restore_last_undo_checkpoint, gfc_type_compatible,
gfc_find_dt_in_generic): Likewise.
* trans-decl.c (gfc_get_module_backend_decl, create_function_arglist,
gfc_create_module_variable, check_constant_initializer): Likewise.
* trans-expr.c (gfc_conv_component_ref, gfc_conv_initializer,
gfc_trans_alloc_subarray_assign, gfc_trans_subcomponent_assign,
gfc_conv_structure, gfc_trans_scalar_assign, copyable_array_p):
Likewise.
* trans-io.c (transfer_namelist_element, transfer_expr,
gfc_trans_transfer): Likewise.
* trans-stmt.c (gfc_trans_deallocate): Likewise.
* trans-types.c (gfc_typenode_for_spec, gfc_copy_dt_decls_ifequal,
gfc_get_derived_type): Likewise.
2016-05-07 Fritz Reese <fritzoreese@gmail.com>
PR fortran/56226
* gfortran.dg/dec_structure_1.f90: New testcase.
* gfortran.dg/dec_structure_2.f90: Ditto.
* gfortran.dg/dec_structure_3.f90: Ditto.
* gfortran.dg/dec_structure_4.f90: Ditto.
* gfortran.dg/dec_structure_5.f90: Ditto.
* gfortran.dg/dec_structure_6.f90: Ditto.
* gfortran.dg/dec_structure_7.f90: Ditto.
* gfortran.dg/dec_structure_8.f90: Ditto.
* gfortran.dg/dec_structure_9.f90: Ditto.
* gfortran.dg/dec_structure_10.f90: Ditto.
* gfortran.dg/dec_structure_11.f90: Ditto.
* gfortran.dg/dec_union_1.f90: Ditto.
* gfortran.dg/dec_union_2.f90: Ditto.
* gfortran.dg/dec_union_3.f90: Ditto.
* gfortran.dg/dec_union_4.f90: Ditto.
* gfortran.dg/dec_union_5.f90: Ditto.
* gfortran.dg/dec_union_6.f90: Ditto.
* gfortran.dg/dec_union_7.f90: Ditto.
From-SVN: r235999
2016-05-08 01:16:23 +02:00
|
|
|
|
2016-05-07 Fritz Reese <fritzoreese@gmail.com>
|
|
|
|
|
|
|
|
|
|
PR fortran/56226
|
|
|
|
|
* module.c (dt_upper_string): Rename to gfc_dt_upper_string
|
|
|
|
|
(dt_lower_string): Likewise.
|
|
|
|
|
* gfortran.h: Make new gfc_dt_upper/lower_string global.
|
|
|
|
|
* class.c: Use gfc_dt_upper_string.
|
|
|
|
|
* decl.c: Likewise.
|
|
|
|
|
* symbol.c: Likewise.
|
|
|
|
|
* resolve.c (resolve_component): New function.
|
|
|
|
|
(resolve_fl_derived0): Move component loop code to resolve_component.
|
|
|
|
|
* parse.c (check_component): New function.
|
|
|
|
|
(parse_derived): Move loop code to check_component.
|
|
|
|
|
* lang.opt, invoke.texi, options.c : New option -fdec-structure.
|
|
|
|
|
* libgfortran.h (bt): New basic type BT_UNION.
|
|
|
|
|
* gfortran.h (gfc_option): New option -fdec-structure.
|
|
|
|
|
(gfc_get_union_type, gfc_compare_union_types): New prototypes.
|
|
|
|
|
(gfc_bt_struct, gfc_fl_struct, case_bt_struct, case_fl_struct): New
|
|
|
|
|
macros.
|
|
|
|
|
(gfc_find_component): Change prototype.
|
|
|
|
|
* match.h (gfc_match_member_sep, gfc_match_map, gfc_match_union,
|
|
|
|
|
gfc_match_structure_decl): New prototypes.
|
|
|
|
|
* parse.h (gfc_comp_struct): New macro.
|
|
|
|
|
* symbol.c (gfc_find_component): Search for components in nested unions
|
|
|
|
|
* class.c (insert_component_ref, gfc_add_component_ref, add_proc_comp,
|
|
|
|
|
copy_vtab_proc_comps): Update calls to gfc_find_component.
|
|
|
|
|
* primary.c (gfc_convert_to_structure_constructor): Likewise.
|
|
|
|
|
* symbol.c (gfc_add_component): Likewise.
|
|
|
|
|
* resolve.c (resolve_typebound_function, resolve_typebound_subroutine,
|
|
|
|
|
resolve_typebound_procedure, resolve_component, resolve_fl_derived):
|
|
|
|
|
Likewise.
|
|
|
|
|
* expr.c (get_union_init, component_init): New functions.
|
|
|
|
|
* decl.c (match_clist_expr, match_record_decl, get_struct_decl,
|
|
|
|
|
gfc_match_map, gfc_match_union, gfc_match_structure_decl): Likewise.
|
|
|
|
|
* interface.c (compare_components, gfc_compare_union_types): Likewise.
|
|
|
|
|
* match.c (gfc_match_member_sep): Likewise.
|
|
|
|
|
* parse.c (check_component, parse_union, parse_struct_map): Likewise.
|
|
|
|
|
* resolve.c (resolve_fl_struct): Likewise.
|
|
|
|
|
* symbol.c (find_union_component): Likewise.
|
|
|
|
|
* trans-types.c (gfc_get_union_type): Likewise.
|
|
|
|
|
* parse.c (parse_derived): Use new functions.
|
|
|
|
|
* interface.c (gfc_compare_derived_types, gfc_compare_types): Likewise.
|
|
|
|
|
* expr.c (gfc_default_initializer): Likewise.
|
|
|
|
|
* gfortran.texi: Support for DEC structures, unions, and maps.
|
|
|
|
|
* gfortran.h (gfc_statement, sym_flavor): Likewise.
|
|
|
|
|
* check.c (gfc_check_kill_sub): Likewise.
|
|
|
|
|
* expr.c (gfc_copy_expr, simplify_const_ref,
|
|
|
|
|
gfc_has_default_initializer): Likewise.
|
|
|
|
|
* decl.c (build_sym, match_data_constant, add_init_expr_to_sym,
|
|
|
|
|
match_pointer_init, build_struct, variable_decl,
|
|
|
|
|
gfc_match_decl_type_spec, gfc_mach_data-decl, gfc_match_entry,
|
|
|
|
|
gfc_match_end, gfc_match_derived_decl): Likewise.
|
|
|
|
|
* interface.c (check_interface0, check_interface1,
|
|
|
|
|
gfc_search_interface): Likewise.
|
|
|
|
|
* misc.c (gfc_basic_typename, gfc_typename): Likewise.
|
|
|
|
|
* module.c (add_true_name, build_tnt, bt_types, mio_typespec,
|
|
|
|
|
fix_mio_expr, load_needed, mio_symbol, read_module, write_symbol,
|
|
|
|
|
gfc_get_module_backend_decl): Likewise.
|
|
|
|
|
* parse.h (gfc_compile_state): Likewise.
|
|
|
|
|
* parse.c (decode_specification_statement, decode_statement,
|
|
|
|
|
gfc_ascii_statement, verify_st_order, parse_spec): Likewise.
|
|
|
|
|
* primary.c (gfc_match_varspec, gfc_match_structure_constructor,
|
|
|
|
|
gfc_match_rvalue, match_variable): Likewise.
|
|
|
|
|
* resolve.c (find_arglists, resolve_structure_cons,
|
|
|
|
|
is_illegal_recursion, resolve_generic_f, get_declared_from_expr,
|
|
|
|
|
resolve_typebound_subroutine, resolve_allocate_expr,
|
|
|
|
|
nonscalar_typebound_assign, generate_component_assignments,
|
|
|
|
|
resolve_fl_variable_derived, check_defined_assignments,
|
|
|
|
|
resolve_component, resolve_symbol, resolve_equivalence_derived):
|
|
|
|
|
Likewise.
|
|
|
|
|
* symbol.c (flavors, check_conflict, gfc_add_flavor, gfc_use_derived,
|
|
|
|
|
gfc_restore_last_undo_checkpoint, gfc_type_compatible,
|
|
|
|
|
gfc_find_dt_in_generic): Likewise.
|
|
|
|
|
* trans-decl.c (gfc_get_module_backend_decl, create_function_arglist,
|
|
|
|
|
gfc_create_module_variable, check_constant_initializer): Likewise.
|
|
|
|
|
* trans-expr.c (gfc_conv_component_ref, gfc_conv_initializer,
|
|
|
|
|
gfc_trans_alloc_subarray_assign, gfc_trans_subcomponent_assign,
|
|
|
|
|
gfc_conv_structure, gfc_trans_scalar_assign, copyable_array_p):
|
|
|
|
|
Likewise.
|
|
|
|
|
* trans-io.c (transfer_namelist_element, transfer_expr,
|
|
|
|
|
gfc_trans_transfer): Likewise.
|
|
|
|
|
* trans-stmt.c (gfc_trans_deallocate): Likewise.
|
|
|
|
|
* trans-types.c (gfc_typenode_for_spec, gfc_copy_dt_decls_ifequal,
|
|
|
|
|
gfc_get_derived_type): Likewise.
|
|
|
|
|
|
2016-05-05 15:31:02 +02:00
|
|
|
|
2016-05-05 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
* openmp.c (gfc_match_omp_clauses): Restructuralize, so that clause
|
|
|
|
|
parsing is done in a big switch based on gfc_peek_ascii_char and
|
|
|
|
|
individual clauses under their first letters are sorted too.
|
|
|
|
|
|
2016-05-03 01:23:45 +02:00
|
|
|
|
2016-05-02 Michael Meissner <meissner@linux.vnet.ibm.com>
|
|
|
|
|
|
|
|
|
|
* trans-types.c (gfc_build_complex_type):
|
|
|
|
|
|
2016-05-02 10:27:54 +02:00
|
|
|
|
2016-05-02 Richard Biener <rguenther@suse.de>
|
|
|
|
|
|
|
|
|
|
* trans-array.c (gfc_trans_create_temp_array): Properly
|
|
|
|
|
create a DECL_EXPR for the anonymous VLA array type.
|
|
|
|
|
|
2016-04-29 19:42:04 +02:00
|
|
|
|
2016-04-29 Cesar Philippidis <cesar@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
PR middle-end/70626
|
|
|
|
|
* trans-openmp.c (gfc_trans_oacc_combined_directive): Duplicate
|
|
|
|
|
the reduction clause in both parallel and loop directives.
|
|
|
|
|
|
2016-04-18 22:36:27 +02:00
|
|
|
|
2016-04-18 Michael Matz <matz@suse.de>
|
|
|
|
|
|
|
|
|
|
* trans-io.c (gfc_build_io_library_fndecls): Use SET_TYPE_ALIGN.
|
|
|
|
|
* trans-common.c (build_common_decl): Use SET_DECL_ALIGN.
|
|
|
|
|
* trans-types.c (gfc_add_field_to_struct): Use SET_DECL_ALIGN.
|
|
|
|
|
|
2016-04-13 17:04:57 +02:00
|
|
|
|
2016-04-13 Dominique d'Humieres <dominiq@lps.ens.fr>
|
|
|
|
|
|
|
|
|
|
PR fortran/67039
|
|
|
|
|
* intrinsic.texi: Correct the documentation of pseudorandom
|
|
|
|
|
number intrinsics.
|
|
|
|
|
|
2016-04-13 15:17:45 +02:00
|
|
|
|
2016-04-13 Dominique d'Humieres <dominiq@lps.ens.fr>
|
|
|
|
|
|
|
|
|
|
PR fortran/58000
|
|
|
|
|
* gfortran.texi: Document OPEN( ... NAME=) as not implemented
|
|
|
|
|
in GNU Fortran
|
|
|
|
|
|
2016-04-09 21:09:02 +02:00
|
|
|
|
2016-04-09 Jerry DeLisle <jvdelisle@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
PR fortran/68566
|
|
|
|
|
* array.c (match_array_element_spec): Add check for non-integer.
|
|
|
|
|
* simplify.c (gfc_simplify_reshape): If source shape is NULL return.
|
|
|
|
|
|
2016-04-07 01:07:21 +02:00
|
|
|
|
2016-04-06 Patrick Palka <ppalka@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
PR c/70436
|
|
|
|
|
* openmp.c (gfc_find_omp_udr): Add explicit braces to resolve a
|
|
|
|
|
future -Wparentheses warning.
|
|
|
|
|
|
2016-04-04 12:32:32 +02:00
|
|
|
|
2016-04-04 Andre Vehreschild <vehre@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
PR fortran/67538
|
|
|
|
|
* resolve.c (resolve_allocate_expr): Emit error message when no
|
|
|
|
|
array spec and no array valued source= expression is given in an
|
|
|
|
|
F2008 allocate() for an array to allocate.
|
|
|
|
|
|
2016-04-04 11:32:28 +02:00
|
|
|
|
2016-04-04 Andre Vehreschild <vehre@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
PR fortran/65795
|
|
|
|
|
* trans-array.c (gfc_array_allocate): When the array is a coarray,
|
|
|
|
|
do not nullyfing its allocatable components in array_allocate, because
|
|
|
|
|
the nullify missed the array ref and nullifies the wrong component.
|
|
|
|
|
Cosmetics.
|
|
|
|
|
|
2016-03-29 18:54:24 +02:00
|
|
|
|
2016-03-29 Andre Vehreschild <vehre@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
PR fortran/70397
|
|
|
|
|
* trans-expr.c (gfc_class_len_or_zero_get): Add function to return a
|
|
|
|
|
constant zero tree, when the class to get the _len component from is
|
|
|
|
|
not unlimited polymorphic.
|
|
|
|
|
(gfc_copy_class_to_class): Use the new function.
|
|
|
|
|
* trans.h: Added interface of new function gfc_class_len_or_zero_get.
|
|
|
|
|
|
2016-03-28 11:05:01 +02:00
|
|
|
|
2016-03-28 Alessandro Fanfarillo <fanfarillo.gcc@gmail.com>
|
|
|
|
|
|
|
|
|
|
* trans-decl.c (gfc_build_builtin_function_decls):
|
|
|
|
|
caf_stop_numeric and caf_stop_str definition.
|
|
|
|
|
* trans-stmt.c (gfc_trans_stop): invoke external functions
|
|
|
|
|
for stop and stop_str when coarrays are used.
|
|
|
|
|
* trans.h: extern for new functions.
|
|
|
|
|
|
2016-03-19 21:28:38 +01:00
|
|
|
|
2016-03-19 Jerry DeLisle <jvdelisle@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
PR fortran/69043
|
|
|
|
|
* scanner.c (load_file): Update to use S_ISREG macro.
|
|
|
|
|
|
2016-03-17 16:07:54 +01:00
|
|
|
|
2016-03-17 Thomas Schwinge <thomas@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* gfortran.h (enum gfc_omp_map_op): Rename OMP_MAP_FORCE_DEALLOC
|
|
|
|
|
to OMP_MAP_DELETE. Adjust all users.
|
|
|
|
|
|
2016-03-13 18:38:07 +01:00
|
|
|
|
2016-03-13 Jerry DeLisle <jvdelisle@gcc.gnu.org>
|
|
|
|
|
Jim MacArthur <jim.macarthur@codethink.co.uk>
|
|
|
|
|
|
|
|
|
|
PR fortran/69043
|
|
|
|
|
* scanner.c (load_file): Check that included file is regular.
|
|
|
|
|
|
2016-03-13 01:19:08 +01:00
|
|
|
|
2016-03-12 Jerry DeLisle <jvdelisle@gcc.gnu.org>
|
|
|
|
|
Harold Anlauf <anlauf@gmx.de>
|
|
|
|
|
|
|
|
|
|
PR fortran/69520
|
|
|
|
|
* invoke.texi: Explain use of the 'no-' construct within the
|
|
|
|
|
-fcheck= option.
|
|
|
|
|
* options.c (gfc_handle_runtime_check_option): Enable use of
|
|
|
|
|
'no-' prefix for the various options with -fcheck= to allow
|
|
|
|
|
negating previously enabled check options.
|
|
|
|
|
|
2016-03-12 14:59:10 +01:00
|
|
|
|
2016-03-12 Paul Thomas <pault@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
PR fortran/70031
|
|
|
|
|
* decl.c (gfc_match_prefix): Treat the 'module' prefix in the
|
|
|
|
|
same way as the others, rather than fixing it to come last.
|
|
|
|
|
(gfc_match_function_decl, gfc_match_subroutine): After errors
|
|
|
|
|
in 'copy_prefix', emit them immediately in the case of module
|
|
|
|
|
procedures to prevent a later ICE.
|
|
|
|
|
|
|
|
|
|
PR fortran/69524
|
|
|
|
|
* decl.c (gfc_match_submod_proc): Permit 'module procedure'
|
|
|
|
|
declarations within the contains section of modules as well as
|
|
|
|
|
submodules.
|
|
|
|
|
* resolve.c (resolve_fl_procedure): Likewise.
|
|
|
|
|
*trans-decl.c (build_function_decl): Change the gcc_assert to
|
|
|
|
|
allow all forms of module procedure declarations within module
|
|
|
|
|
contains sections.
|
|
|
|
|
|
2016-02-28 23:27:55 +01:00
|
|
|
|
2016-02-28 Thomas Koenig <tkoenig@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
PR fortran/68147
|
|
|
|
|
PR fortran/47674
|
|
|
|
|
* frontend-passes.c (realloc_string_callback): Don't set
|
|
|
|
|
walk_subtrees.
|
|
|
|
|
|
2016-02-28 23:24:27 +01:00
|
|
|
|
2016-02-28 Thomas Koenig <tkoenig@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
* dump-parse-tree.c (show_code_node): Print association
|
|
|
|
|
list of a block if present. Handle EXEC_END_BLOCK.
|
|
|
|
|
|
2016-09-05 21:42:42 +02:00
|
|
|
|
2016-02-28 Harald Anlauf <anlauf@gmx.de>
|
2016-02-28 20:07:42 +01:00
|
|
|
|
Jerry DeLisle <jvdelisle@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
PR fortran/56007
|
|
|
|
|
* match.c (gfc_match_iterator): Add diagnostic for array variable
|
|
|
|
|
as do loop index.
|
|
|
|
|
|
2016-02-27 20:07:13 +01:00
|
|
|
|
2016-02-27 Jerry DeLisle <jvdelisle@gcc.gnu.org>
|
|
|
|
|
Steven G. Kargl <kargl@gcc.gnu.org>
|
|
|
|
|
|
2016-02-27 23:04:08 +01:00
|
|
|
|
PR fortran/69910
|
2016-02-27 20:07:13 +01:00
|
|
|
|
* io.c (gfc_match_open): Check that open status is an expression
|
|
|
|
|
constant before comparing string to 'scratch' with NEWUNIT.
|
|
|
|
|
|
2016-02-27 12:57:16 +01:00
|
|
|
|
2016-02-27 Alessandro Fanfarillo <fanfarillo.gcc@gmail.com>
|
|
|
|
|
|
|
|
|
|
* trans.c (gfc_allocate_allocatable): size conversion
|
|
|
|
|
from byte to number of elements for event variables.
|
|
|
|
|
* trans-types.c (gfc_get_derived_type): event variables
|
|
|
|
|
represented as a pointer (like lock variable).
|
|
|
|
|
|
2016-02-23 23:53:31 +01:00
|
|
|
|
2016-02-23 Jerry DeLisle <jvdelisle@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
PR fortran/61156
|
|
|
|
|
* scanner.c (add_path_to_list): If include path is not a directory,
|
|
|
|
|
issue a fatal error.
|
|
|
|
|
|
2016-02-23 11:29:26 +01:00
|
|
|
|
2016-02-23 Andre Vehreschild <vehre@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
PR fortran/67451
|
|
|
|
|
* trans-array.c (gfc_array_allocate): Take the attributes from the
|
|
|
|
|
expression to allocate and not from the source=-expression.
|
|
|
|
|
|
2016-02-20 19:26:59 +01:00
|
|
|
|
2016-02-20 Paul Thomas <pault@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
PR fortran/69423
|
|
|
|
|
* trans-decl.c (create_function_arglist): Deferred character
|
|
|
|
|
length functions, with and without declared results, address
|
|
|
|
|
the passed reference type as '.result' and the local string
|
|
|
|
|
length as '..result'.
|
|
|
|
|
(gfc_null_and_pass_deferred_len): Helper function to null and
|
|
|
|
|
return deferred string lengths, as needed.
|
|
|
|
|
(gfc_trans_deferred_vars): Call it, thereby reducing repeated
|
|
|
|
|
code, add call for deferred arrays and reroute pointer function
|
|
|
|
|
results. Avoid using 'tmp' for anything other that a temporary
|
|
|
|
|
tree by introducing 'type_of_array' for the arrayspec type.
|
|
|
|
|
|
2016-02-16 22:10:00 +01:00
|
|
|
|
2015-02-16 Thomas Koenig <tkoenig@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
PR fortran/69742
|
|
|
|
|
* frontend-passes.c (cfe-expr_0): Don't register functions
|
|
|
|
|
from within an ASSOCIATE statement.
|
|
|
|
|
|
2016-02-14 18:08:44 +01:00
|
|
|
|
2016-02-14 Thomas Koenig <tkoenig@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
PR fortran/60526
|
|
|
|
|
* decl.c (build_sym): If the name has already been defined as a
|
|
|
|
|
type, it has a symtree with an upper case letter at the beginning.
|
|
|
|
|
If such a symtree exists, issue an error and exit. Don't do
|
|
|
|
|
this if there is no corresponding upper case letter.
|
|
|
|
|
|
2016-02-14 16:13:39 +01:00
|
|
|
|
2016-02-14 Thomas Koenig <tkoenig@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
PR fortran/60526
|
|
|
|
|
PR bootstrap/69816
|
|
|
|
|
* decl.c (build_sym): Reverted previous patch.
|
|
|
|
|
|
2016-02-14 13:23:59 +01:00
|
|
|
|
2016-02-14 Thomas Koenig <tkoenig@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
PR fortran/60526
|
|
|
|
|
* decl.c (build_sym): If the name has already been defined as a
|
|
|
|
|
type, issue error and return false.
|
|
|
|
|
|
2016-02-12 20:18:03 +01:00
|
|
|
|
2016-02-12 David Malcolm <dmalcolm@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR other/69554
|
|
|
|
|
* error.c (gfc_diagnostic_start_span): New function.
|
|
|
|
|
(gfc_diagnostics_init): Initialize global_dc's start_span.
|
|
|
|
|
|
2016-02-11 17:48:45 +01:00
|
|
|
|
2016-02-11 Andre Vehreschild <vehre@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
PR fortran/69296
|
|
|
|
|
* gfortran.h: Added flag to gfc_association_list indicating that
|
|
|
|
|
the rank of an associate variable has been guessed only.
|
|
|
|
|
* parse.c (parse_associate): Set the guess flag mentioned above
|
|
|
|
|
when guessing the rank of an expression.
|
|
|
|
|
* resolve.c (resolve_assoc_var): When the rank has been guessed,
|
|
|
|
|
make sure, that the guess was correct else overwrite with the actual
|
|
|
|
|
rank.
|
|
|
|
|
* trans-stmt.c (trans_associate_var): For subref_array_pointers in
|
|
|
|
|
class objects, take the span from the _data component.
|
|
|
|
|
|
2016-02-07 21:15:55 +01:00
|
|
|
|
2016-02-07 Jerry DeLisle <jvdelisle@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
PR fortran/50555
|
|
|
|
|
* primary.c (match_actual_arg): If symbol has attribute flavor of
|
|
|
|
|
namelist, generate an error. (gfc_match_rvalue): Likewise return
|
|
|
|
|
MATCH_ERROR.
|
|
|
|
|
* resolve.c (resolve_symbol): Scan arument list of procedures and
|
|
|
|
|
generate an error if a namelist is found.
|
|
|
|
|
|
2016-02-05 22:41:15 +01:00
|
|
|
|
2016-02-05 Mikael Morin <mikael@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
PR fortran/66089
|
|
|
|
|
* trans-expr.c (expr_is_variable, gfc_expr_is_variable): Rename
|
|
|
|
|
the former to the latter and make it non-static. Update callers.
|
|
|
|
|
* gfortran.h (gfc_expr_is_variable): New declaration.
|
|
|
|
|
(struct gfc_ss_info): Add field needs_temporary.
|
|
|
|
|
* trans-array.c (gfc_scalar_elemental_arg_saved_as_argument):
|
|
|
|
|
Tighten the condition on aggregate expressions with a check
|
|
|
|
|
that the expression is a variable and doesn't need a temporary.
|
|
|
|
|
(gfc_conv_resolve_dependency): Add intermediary reference variable.
|
|
|
|
|
Set the needs_temporary field.
|
|
|
|
|
|
2016-02-03 11:39:09 +01:00
|
|
|
|
2016-02-03 Andre Vehreschild <vehre@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
PR fortran/67451
|
|
|
|
|
PR fortran/69418
|
|
|
|
|
* trans-expr.c (gfc_copy_class_to_class): For coarrays just the
|
|
|
|
|
pointer is passed. Take it as is without trying to deref the
|
|
|
|
|
_data component.
|
|
|
|
|
* trans-stmt.c (gfc_trans_allocate): Take care of coarrays as
|
|
|
|
|
argument to source=-expression.
|
|
|
|
|
|
2016-02-01 17:20:13 +01:00
|
|
|
|
2016-02-02 Nathan Sidwell <nathan@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* lang.opt (fopenacc-dim=): New option.
|
|
|
|
|
|
2016-01-31 11:22:05 +01:00
|
|
|
|
2016-01-31 Paul Thomas <pault@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
PR fortran/67564
|
|
|
|
|
* trans-expr.c (gfc_conv_procedure_call): For the vtable copy
|
|
|
|
|
subroutines, add a string length argument, when the actual
|
|
|
|
|
argument is an unlimited polymorphic class object.
|
|
|
|
|
|
2016-01-30 18:44:56 +01:00
|
|
|
|
2016-01-30 Paul Thomas <pault@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
PR fortran/69566
|
|
|
|
|
* trans-expr.c (gfc_conv_procedure_call): Correct expression
|
|
|
|
|
for 'ulim_copy', which was missing a test for 'comp'.
|
|
|
|
|
|
2016-01-28 12:34:03 +01:00
|
|
|
|
2016-01-28 Andre Vehreschild <vehre@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
PR fortran/62536
|
|
|
|
|
* decl.c (gfc_match_end): Only unnest and remove BLOCK namespaces
|
|
|
|
|
when the END encountered does not match a BLOCK's end.
|
|
|
|
|
|
2016-01-27 23:32:52 +01:00
|
|
|
|
2016-01-27 Janus Weil <janus@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
PR fortran/69484
|
|
|
|
|
* invoke.texi: Fix documentation of -Wall with respect to -Wtabs.
|
|
|
|
|
|
2016-01-27 22:24:01 +01:00
|
|
|
|
2016-01-27 Paul Thomas <pault@gcc.gnu.org>
|
|
|
|
|
|
2016-01-28 07:52:15 +01:00
|
|
|
|
PR fortran/69422
|
2016-01-27 22:24:01 +01:00
|
|
|
|
* trans-expr.c (is_scalar_reallocatable_lhs): Remove the check
|
|
|
|
|
for allocatable components, whilst checking if the symbol is a
|
|
|
|
|
derived or class entity..
|
|
|
|
|
|
2016-01-26 22:57:12 +01:00
|
|
|
|
2016-01-26 Paul Thomas <pault@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
PR fortran/69385
|
|
|
|
|
* trans-expr.c (gfc_trans_assignment_1): Exclude initialization
|
|
|
|
|
assignments from check on assignment of scalars to unassigned
|
|
|
|
|
arrays and correct wrong code within the corresponding block.
|
|
|
|
|
|
2016-01-26 18:08:12 +01:00
|
|
|
|
2016-01-26 David Malcolm <dmalcolm@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR other/69006
|
|
|
|
|
* error.c (gfc_diagnostic_starter): Delete use of pp_newline.
|
|
|
|
|
|
2016-01-24 23:18:20 +01:00
|
|
|
|
2016-01-23 Jerry DeLisle <jvdelisle@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
PR fortran/69397
|
|
|
|
|
PR fortran/68442
|
|
|
|
|
* interface.c (gfc_arglist_matches_symbol): Replace assert with
|
|
|
|
|
a return false if not a procedure.
|
|
|
|
|
* resolve.c (resolve_generic_f): Test if we are resolving an
|
|
|
|
|
initialization expression and adjust error message accordingly.
|
|
|
|
|
|
2016-01-24 19:15:08 +01:00
|
|
|
|
2016-01-24 Thomas Koenig <tkoenig@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
PR fortran/66094
|
|
|
|
|
* frontend-passes.c (matmul_lhs_realloc): Add
|
|
|
|
|
forgotten break statement.
|
|
|
|
|
|
2016-09-05 21:42:42 +02:00
|
|
|
|
2016-01-24 Dominique d'Humieres <dominiq@lps.ens.fr>
|
2016-01-24 14:12:44 +01:00
|
|
|
|
|
|
|
|
|
PR fortran/68283
|
|
|
|
|
* primary.c (gfc_variable_attr): revert revision r221955,
|
|
|
|
|
call gfc_internal_error only if there is no error.
|
|
|
|
|
|
2016-01-24 10:11:50 +01:00
|
|
|
|
2016-01-24 Thomas Koenig <tkoenig@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
PR fortran/66094
|
|
|
|
|
* frontend-passes.c (enum matrix_case): Add case A2B2T for
|
|
|
|
|
MATMUL(A,TRANSPoSE(B)) where A and B are rank 2.
|
|
|
|
|
(inline_limit_check): Also add A2B2T.
|
|
|
|
|
(matmul_lhs_realloc): Handle A2B2T.
|
|
|
|
|
(check_conjg_variable): Rename to
|
|
|
|
|
(check_conjg_transpose_variable): and also count TRANSPOSE.
|
|
|
|
|
(inline_matmul_assign): Handle A2B2T.
|
|
|
|
|
|
2016-01-21 22:08:00 +01:00
|
|
|
|
2016-01-21 Jerry DeLisle <jvdelisle@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
PR fortran/65996
|
|
|
|
|
* error.c (gfc_error): Save the state of abort_on_error and set
|
|
|
|
|
it to false for buffered errors to allow normal processing.
|
|
|
|
|
Restore the state before leaving.
|
|
|
|
|
|
2016-01-19 11:35:10 +01:00
|
|
|
|
2016-01-19 Martin Jambor <mjambor@suse.cz>
|
|
|
|
|
|
|
|
|
|
* types.def (BT_FN_VOID_UINT_PTR_INT_PTR): New.
|
|
|
|
|
(BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_UINT_PTR_INT_INT): Removed.
|
|
|
|
|
(BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_UINT_PTR_PTR): New.
|
|
|
|
|
|
2016-01-15 21:33:58 +01:00
|
|
|
|
2016-01-15 Paul Thomas <pault@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
PR fortran/64324
|
|
|
|
|
* resolve.c (check_uop_procedure): Prevent deferred length
|
|
|
|
|
characters from being trapped by assumed length error.
|
|
|
|
|
|
|
|
|
|
PR fortran/49630
|
|
|
|
|
PR fortran/54070
|
|
|
|
|
PR fortran/60593
|
|
|
|
|
PR fortran/60795
|
|
|
|
|
PR fortran/61147
|
|
|
|
|
PR fortran/64324
|
|
|
|
|
* trans-array.c (gfc_conv_scalarized_array_ref): Pass decl for
|
|
|
|
|
function as well as variable expressions.
|
|
|
|
|
(gfc_array_init_size): Add 'expr' as an argument. Use this to
|
|
|
|
|
correctly set the descriptor dtype for deferred characters.
|
|
|
|
|
(gfc_array_allocate): Add 'expr' to the call to
|
|
|
|
|
'gfc_array_init_size'.
|
|
|
|
|
* trans.c (gfc_build_array_ref): Expand logic for setting span
|
|
|
|
|
to include indirect references to character lengths.
|
|
|
|
|
* trans-decl.c (gfc_get_symbol_decl): Ensure that deferred
|
|
|
|
|
result char lengths that are PARM_DECLs are indirectly
|
|
|
|
|
referenced both for directly passed and by reference.
|
|
|
|
|
(create_function_arglist): If the length type is a pointer type
|
|
|
|
|
then store the length as the 'passed_length' and make the char
|
|
|
|
|
length an indirect reference to it.
|
|
|
|
|
(gfc_trans_deferred_vars): If a character length has escaped
|
|
|
|
|
being set as an indirect reference, return it via the 'passed
|
|
|
|
|
length'.
|
|
|
|
|
* trans-expr.c (gfc_conv_procedure_call): The length of
|
|
|
|
|
deferred character length results is set TREE_STATIC and set to
|
|
|
|
|
zero.
|
|
|
|
|
(gfc_trans_assignment_1): Do not fix the rse string_length if
|
|
|
|
|
it is a variable, a parameter or an indirect reference. Add the
|
|
|
|
|
code to trap assignment of scalars to unallocated arrays.
|
|
|
|
|
* trans-stmt.c (gfc_trans_allocate): Remove 'def_str_len' and
|
|
|
|
|
all references to it. Instead, replicate the code to obtain a
|
|
|
|
|
explicitly defined string length and provide a value before
|
|
|
|
|
array allocation so that the dtype is correctly set.
|
|
|
|
|
trans-types.c (gfc_get_character_type): If the character length
|
|
|
|
|
is a pointer, use the indirect reference.
|
|
|
|
|
|
2016-01-10 14:18:54 +01:00
|
|
|
|
2016-01-10 Thomas Koenig <tkoenig@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
PR fortran/69154
|
|
|
|
|
* frontend-passes.c (in_where): New variable.
|
|
|
|
|
(inline_matmul_assign): Don't try this if we are within
|
|
|
|
|
a WHERE statement.
|
|
|
|
|
(gfc_code_walker): Keep track of in_where.
|
|
|
|
|
|
2016-01-10 13:56:28 +01:00
|
|
|
|
2016-01-10 Paul Thomas <pault@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
PR fortran/67779
|
|
|
|
|
* trans_array.c (gfc_conv_scalarized_array_ref): Add missing
|
|
|
|
|
se->use_offset from condition for calculation of 'base'.
|
|
|
|
|
|
2016-01-08 07:45:18 +01:00
|
|
|
|
2016-01-08 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR fortran/69128
|
|
|
|
|
* trans.h (OMPWS_SCALARIZER_BODY): Define.
|
|
|
|
|
(OMPWS_NOWAIT): Renumber.
|
|
|
|
|
* trans-stmt.c (gfc_trans_where_3): Only set OMPWS_SCALARIZER_WS
|
|
|
|
|
if OMPWS_SCALARIZER_BODY is not set already, and set also
|
|
|
|
|
OMPWS_SCALARIZER_BODY until the final loop creation.
|
|
|
|
|
* trans-expr.c (gfc_trans_assignment_1): Likewise.
|
|
|
|
|
* trans-openmp.c (gfc_trans_omp_workshare): Also clear
|
|
|
|
|
OMPWS_SCALARIZER_BODY.
|
|
|
|
|
* trans-array.c (gfc_trans_scalarized_loop_end): Don't create
|
|
|
|
|
OMP_FOR if OMPWS_SCALARIZER_BODY is set.
|
|
|
|
|
|
2016-01-04 14:03:35 +01:00
|
|
|
|
2016-01-04 Jakub Jelinek <jakub@redhat.com>
|
2015-01-05 13:33:28 +01:00
|
|
|
|
|
2016-01-04 15:30:50 +01:00
|
|
|
|
Update copyright years.
|
|
|
|
|
|
2015-01-05 13:05:46 +01:00
|
|
|
|
* gfortranspec.c (lang_specific_driver): Update copyright notice
|
|
|
|
|
dates.
|
|
|
|
|
* gfc-internals.texi: Bump @copying's copyright year.
|
|
|
|
|
* gfortran.texi: Ditto.
|
|
|
|
|
* intrinsic.texi: Ditto.
|
|
|
|
|
* invoke.texi: Ditto.
|
|
|
|
|
|
2016-01-04 14:03:35 +01:00
|
|
|
|
2016-01-01 Paul Thomas <pault@gcc.gnu.org>
|
2014-12-31 18:16:06 +01:00
|
|
|
|
|
2016-01-04 14:03:35 +01:00
|
|
|
|
PR fortran/68864
|
|
|
|
|
* trans-array.c (evaluate_bound): If deferred, test that 'desc'
|
|
|
|
|
is an array descriptor before using gfc_conv_descriptor_xxx.
|
|
|
|
|
|
|
|
|
|
Copyright (C) 2016 Free Software Foundation, Inc.
|
ABOUT-GCC-NLS, [...]: Add copyright and license notices.
* ABOUT-GCC-NLS, ChangeLog, ChangeLog-1997, ChangeLog-1998,
ChangeLog-1999, ChangeLog-2000, ChangeLog-2001, ChangeLog-2002,
ChangeLog-2003, ChangeLog-2004, ChangeLog-2005, ChangeLog-2006,
ChangeLog-2007, ChangeLog-2008, ChangeLog.dataflow, ChangeLog.lib,
ChangeLog.ptr, ChangeLog.tree-ssa, ChangeLog.tuples, FSFChangeLog,
FSFChangeLog.10, FSFChangeLog.11, LANGUAGES, ONEWS, acinclude.m4,
config/alpha/gnu.h, config/alpha/libgcc-alpha-ldbl.ver,
config/alpha/t-osf4, config/alpha/t-vms, config/alpha/va_list.h,
config/alpha/x-vms, config/arc/t-arc,
config/arm/README-interworking, config/arm/arm-c.c,
config/arm/gentune.sh, config/arm/libgcc-bpabi.ver,
config/arm/t-arm, config/arm/t-arm-elf, config/arm/t-arm-softfp,
config/arm/t-bpabi, config/arm/t-linux, config/arm/t-linux-eabi,
config/arm/t-netbsd, config/arm/t-pe, config/arm/t-strongarm-elf,
config/arm/t-symbian, config/arm/t-vxworks, config/arm/t-wince-pe,
config/avr/t-avr, config/bfin/elf.h, config/bfin/libgcc-bfin.ver,
config/bfin/linux.h, config/bfin/t-bfin, config/bfin/t-bfin-elf,
config/bfin/t-bfin-linux, config/bfin/t-bfin-uclinux,
config/bfin/uclinux.h, config/cris/mulsi3.asm, config/cris/t-cris,
config/cris/t-elfmulti, config/crx/t-crx,
config/darwin-ppc-ldouble-patch.def, config/darwin-sections.def,
config/divmod.c, config/fr30/t-fr30, config/frv/libgcc-frv.ver,
config/frv/t-frv, config/frv/t-linux, config/h8300/genmova.sh,
config/h8300/t-h8300, config/i386/athlon.md,
config/i386/darwin-libgcc.10.4.ver,
config/i386/darwin-libgcc.10.5.ver, config/i386/libgcc-glibc.ver,
config/i386/mach.h, config/i386/netbsd.h, config/i386/t-crtpc,
config/i386/t-cygming, config/i386/t-cygwin, config/i386/t-i386,
config/i386/t-linux64, config/i386/t-nwld,
config/i386/t-rtems-i386, config/i386/t-sol2-10,
config/i386/x-mingw32, config/ia64/div.md, config/ia64/elf.h,
config/ia64/ia64.opt, config/ia64/libgcc-glibc.ver,
config/ia64/libgcc-ia64.ver, config/ia64/linux.h,
config/ia64/sysv4.h, config/ia64/t-hpux, config/ia64/t-ia64,
config/iq2000/abi, config/iq2000/lib2extra-funcs.c,
config/iq2000/t-iq2000, config/libgcc-glibc.ver,
config/m32r/libgcc-glibc.ver, config/m32r/t-linux,
config/m32r/t-m32r, config/m68hc11/t-m68hc11,
config/m68k/t-floatlib, config/m68k/t-linux, config/m68k/t-mlibs,
config/m68k/t-uclinux, config/mcore/t-mcore,
config/mcore/t-mcore-pe, config/mips/20kc.md, config/mips/4130.md,
config/mips/5400.md, config/mips/5500.md, config/mips/crti.asm,
config/mips/crtn.asm, config/mips/irix-crti.asm,
config/mips/irix-crtn.asm, config/mips/libgcc-mips16.ver,
config/mips/mips-dsp.md, config/mips/mips-dspr2.md,
config/mips/mips-fixed.md, config/mips/sb1.md,
config/mips/sr71k.md, config/mips/t-elf, config/mips/t-gofast,
config/mips/t-iris6, config/mips/t-isa3264,
config/mips/t-libgcc-mips16, config/mips/t-linux64,
config/mips/t-mips, config/mips/t-r3900, config/mips/t-rtems,
config/mips/t-sb1, config/mips/t-sde, config/mips/t-sdemtk,
config/mips/t-slibgcc-irix, config/mips/t-sr71k, config/mips/t-st,
config/mips/t-vr, config/mips/t-vxworks, config/mmix/t-mmix,
config/mn10300/t-linux, config/mn10300/t-mn10300,
config/pa/pa32-regs.h, config/pa/t-hpux-shlib, config/pa/t-linux,
config/pa/t-linux64, config/pa/t-pa64, config/pdp11/t-pdp11,
config/picochip/libgccExtras/clzsi2.asm,
config/picochip/t-picochip, config/rs6000/darwin-ldouble-format,
config/rs6000/darwin-libgcc.10.4.ver,
config/rs6000/darwin-libgcc.10.5.ver,
config/rs6000/libgcc-ppc-glibc.ver, config/rs6000/ppc-asm.h,
config/rs6000/t-aix43, config/rs6000/t-aix52,
config/rs6000/t-darwin, config/rs6000/t-fprules,
config/rs6000/t-fprules-fpbit, config/rs6000/t-linux64,
config/rs6000/t-lynx, config/rs6000/t-netbsd,
config/rs6000/t-ppccomm, config/rs6000/t-ppcendian,
config/rs6000/t-ppcgas, config/rs6000/t-rs6000,
config/rs6000/t-rtems, config/rs6000/t-spe,
config/rs6000/t-vxworks, config/s390/libgcc-glibc.ver,
config/score/t-score-elf, config/sh/divcost-analysis,
config/sh/libgcc-glibc.ver, config/sh/t-netbsd, config/sh/t-sh,
config/sh/t-sh64, config/sh/t-superh, config/sh/t-symbian,
config/sparc/libgcc-sparc-glibc.ver, config/sparc/sol2-bi.h,
config/sparc/sol2-gas.h, config/sparc/sol2-gld-bi.h,
config/sparc/t-elf, config/sparc/t-linux64, config/sparc/t-sol2,
config/stormy16/stormy-abi, config/stormy16/t-stormy16,
config/t-darwin, config/t-libunwind, config/t-libunwind-elf,
config/t-linux, config/t-lynx, config/t-slibgcc-elf-ver,
config/t-slibgcc-sld, config/t-sol2, config/t-vxworks,
config/udivmod.c, config/udivmodsi4.c, config/v850/t-v850,
config/v850/t-v850e, config/xtensa/t-xtensa, diagnostic.def,
gdbinit.in, glimits.h, gstab.h, gsyms.h, java/ChangeLog,
java/ChangeLog.ptr, java/ChangeLog.tree-ssa, libgcc-std.ver,
limitx.h, version.c, xcoff.h: Add copyright and license notices.
* config/h8300/genmova.sh: Include copyright and license notices
in generated output.
* config/h8300/mova.md: Regenerate.
* doc/install.texi2html: Include word "Copyright" in copyright
notice and use name "Free Software Foundation, Inc.".
* ChangeLog, ChangeLog-2000, ChangeLog-2001, ChangeLog-2002,
ChangeLog-2003, ChangeLog-2004, ChangeLog-2005, ChangeLog-2006,
ChangeLog-2007, ChangeLog-2008: Correct dates.
ada:
* ChangeLog, ChangeLog.ptr, ChangeLog.tree-ssa: Add copyright and
license notices.
cp:
* ChangeLog, ChangeLog-1993, ChangeLog-1994, ChangeLog-1995,
ChangeLog-1996, ChangeLog-1997, ChangeLog-1998, ChangeLog-1999,
ChangeLog-2000, ChangeLog-2001, ChangeLog-2002, ChangeLog-2003,
ChangeLog-2004, ChangeLog-2005, ChangeLog-2006, ChangeLog-2007,
ChangeLog-2008, ChangeLog.ptr, ChangeLog.tree-ssa, NEWS,
cfns.gperf: Add copyright and license notices.
* cfns.h: Regenerate.
* ChangeLog, ChangeLog-2004: Correct dates.
fortran:
* ChangeLog, ChangeLog-2002, ChangeLog-2003, ChangeLog-2004,
ChangeLog-2005, ChangeLog-2006, ChangeLog-2007, ChangeLog-2008,
ChangeLog.ptr, config-lang.in, ioparm.def, mathbuiltins.def: Add
copyright and license notices.
* ChangeLog, ChangeLog-2005, ChangeLog-2006, ChangeLog-2007,
ChangeLog-2008: Correct dates.
java:
* ChangeLog, ChangeLog.ptr, ChangeLog.tree-ssa: Add copyright and
license notices.
objc:
* ChangeLog: Add copyright and license notices.
objcp:
* ChangeLog: Add copyright and license notices.
po:
* ChangeLog, EXCLUDES: Add copyright and license notices.
testsuite:
* ChangeLog, ChangeLog-1993-2007, ChangeLog-2008, ChangeLog.ptr,
ChangeLog.tree-ssa, README, README.QMTEST, README.compat,
README.gcc, g++.dg/README, g++.dg/compat/break/README,
g++.dg/gomp/gomp.exp, g++.old-deja/g++.brendan/README,
g++.old-deja/g++.oliva/ChangeLog, g++.old-deja/g++.robertl/README,
gcc.c-torture/ChangeLog.0,
gcc.c-torture/execute/builtins/builtins.exp, gcc.dg/README,
gcc.dg/gomp/gomp.exp, gcc.target/frv/frv.exp,
gcc.target/i386/math-torture/math-torture.exp,
gcc.target/mips/inter/mips16-inter.exp,
gcc.target/mips/mips-nonpic/README,
gcc.target/x86_64/abi/README.gcc,
gcc.target/xstormy16/xstormy16.exp, gcc.test-framework/README,
gfortran.dg/g77/README, gfortran.dg/gomp/gomp.exp,
gfortran.fortran-torture/ChangeLog.g95: Add copyright and license
notices.
* ChangeLog-1993-2007, ChangeLog: Correct dates.
From-SVN: r146533
2009-04-21 21:03:23 +02:00
|
|
|
|
|
|
|
|
|
Copying and distribution of this file, with or without modification,
|
|
|
|
|
are permitted in any medium without royalty provided the copyright
|
|
|
|
|
notice and this notice are preserved.
|