* tree-ssa.c (kill_redundant_phi_nodes): More correctly handle
PHIs where the destination or an argument is marked with
SSA_NAME_OCCURS_IN_ABNORMAL_PHI.
* gcc.c-torture/20040614-1.c: New test.
From-SVN: r83132
fortran/
PR fortran/15211
* trans-intrinsic.c (gfc_conv_intrinsic_len): Deal with arrays
of strings.
testsuite/
PR fortran/15211
* gfortran.fortran-torture/execute/intrinsic_len.f90: Also test
LEN of a character array.
From-SVN: r83126
PR fortran/15510
* trans-deecl.c (generate_local_decl): Do not issue warning for
unused variables if they're use associated.
Co-Authored-By: Andrew Vaught <andyv@firstinter.net>
From-SVN: r83113
PR c++/15096
* decl.c (grokdeclarator): Ignore pointer-to-members when
computing template depth.
PR c++/14930
* name-lookup.c (pushtag): Do not try to put class declarations in
explicit specialization scopes.
PR c++/15096
* g++.dg/template/ptrmem10.C: New test.
PR c++/14930
* g++.dg/template/friend30.C: New test.
From-SVN: r83112
fortran/
2004-06-05 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
Andrew Vaught <andyv@firstinter.net>
PR fortran/14928
* gfortran.h (gfc_check_f): Add new field f3ml.
* check.c (gfc_check_minloc_maxloc): Take argument list instead
of individual arguments, reorder if necessary.
* intrinsic.h (gfc_check_minloc_maxloc): ... adapt prototype.
* intrinsic.c (add_sym_3ml): New function.
(add_functions): Change to add_sym_3ml for MINLOC, MAXLOC.
(check_specific): Catch special case MINLOC, MAXLOC.
testsuite/
PR fortran/14928
* gfortran.fortran-torture/compile/mloc.f90: New test.
Co-Authored-By: Andrew Vaught <andyv@firstinter.net>
From-SVN: r83111
2004-06-14 Andrew Haley <aph@redhat.com>
* java/lang/System.java: (getenv0): New method.
(getenv): Add security check. Do the right thing.
* java/lang/natSystem.cc (getenv0): New method.
From-SVN: r83107
* Makefile.in (FLAGS_H): New.
(flags.h): Replace by FLAGS_H.
* c.opt: Document Var, VarExists, Init and Report attributes.
* common.opt: Fill the values of the attributes.
* diagnostic.c (flag_fatal_errors): Do not define.
* except.c (flag_non_call_exceptions): Do not define.
* flags.h: Include options.h. Remove declarations conflicting with
the automatically defined ones.
* opts.c: Remove automatically defined variables.
(handle_option): Perform default initialization.
(common_handle_option): Do not handle options covered by the
default initialization.
* opts.h (struct cl_option): Add flag_var, has_set_value and set_value
fields.
(CL_REPORT): New.
* opts.sh: Generate variable declarations, handle CL_REPORT.
* toplev.c: Remove automatically defined variables.
(f_options): Removed.
(print_switch_values): Use cl_options instead of f_options.
* toplev.h (version_flag): Declaration removed.
From-SVN: r83105
* ada-tree.def (LOOP_STMT, EXIT_STMT): Update documentation.
* ada-tree.h (EXIT_STMT_LABEL): Renamed from EXIT_STMT_LOOP.
* decl.c (gnat_to_gnu_entity): Also set force_global for imported
subprograms.
* trans.c (gnu_loop_label_stack): Renamed from gnu_loop_stmt_stack;
all callers changed.
(gnat_to_gnu, case N_Loop_Statement, case N_Exit_Statement): Change
the way that EXIT_STMT finds the loop label.
(gnat_gimplify_stmt, case LOOP_STMT, EXIT_STMT): Likewise.
(gnat_gimplify_stmt, case DECL_STMT): Handle variable-sized decls here.
(add_stmt): Use annotate_with_locus insted of setting directly.
(pos_to_construct): Set TREE_PURPOSE of each entry to index.
(gnat_stabilize_reference, case ARRAY_RANGE_REF): Merge with ARRAY_REF.
* utils.c (gnat_install_builtins): Install __builtin_memcmp.
(build_vms_descriptor): Add extra args to ARRAY_REF.
(convert): Use VIEW_CONVERT_EXPR between aggregate types.
* utils2.c (gnat_truthvalue_conversion, case INTEGER_CST, REAL_CST):
New cases.
(build_binary_op): Don't make explicit CONVERT_EXPR.
Add extra rgs to ARRAY_REF.
From-SVN: r83103
2004-06-14 Pascal Obry <obry@gnat.com>
* gnat_ugn.texi: Document relocatable vs. dynamic Library_Kind on
Windows. Fix minor typo.
* mlib-tgt-mingw.adb: New implementation using the GCC -shared option
which is now supported on Windows. With this implementation using the
Library Project feature is no different on Windows than on UNIX.
2004-06-14 Vincent Celier <celier@gnat.com>
* makegpr.adb (Compile_Sources): Nothing to do when there are no
non-Ada sources.
* mlib-tgt-vxworks.adb (Library_Exists_For): Remove incorrect comment
* prj-part.adb (Parse_Single_Project): When a duplicate project name is
found, show the project name and the path of the previously parsed
project file.
2004-06-14 Ed Schonberg <schonberg@gnat.com>
* exp_ch6.adb (Add_Call_By_Copy_Code): For an out-parameter that is an
array, avoid copying the actual before the call.
2004-06-14 Thomas Quinot <quinot@act-europe.fr>
* g-debpoo.adb: Remove alignment assumptions from GNAT.Debug_Pools.
Instead, allocate memory on worst-case alignment assumptions, and then
return an aligned address within the allocated zone.
2004-06-14 Robert Dewar <dewar@gnat.com>
* bindgen.adb (Gen_Adainit_Ada): Do not generate external references to
elab entities in predefined units in No_Run_Time_Mode.
(Gen_Adainit_C): Same fix
(Gen_Elab_Calls_Ada): Do not generate calls to elaborate predefined
units in No_Run_Time_Mode
(Gen_Elab_Calls_C): Same fix
* symbols-vms-alpha.adb: Minor reformatting
* g-debpoo.ads: Minor reformatting
* lib.adb (In_Same_Extended_Unit): Version working on node id's
* lib.ads (In_Same_Extended_Unit): Version working on node id's
* lib-xref.adb: Minor cleanup, use new version of In_Same_Extended_Unit
working on nodes.
* make.adb: Minor reformatting
* par-ch12.adb: Minor reformatting
* par-prag.adb: Add dummy entry for pragma Profile_Warnings
* prj-strt.adb: Minor reformatting
* restrict.ads, restrict.adb: Redo handling of profile restrictions to
be more general.
* sem_attr.adb: Minor reformatting
* sem_ch7.adb: Minor reformatting
* sem_elab.adb (Check_A_Call): Deal with problem of calling init proc
for type in the same unit as the object declaration.
* sem_prag.adb (Check_Arg_Is_External_Name): New procedure, allows
static string expressions and not just string literals.
Minor reformatting
(Set_Warning): Reset restriction warning flag for restriction pragma
Implement pragma Profile_Warnings
Implement pragma Profile (Restricted)
Give obolescent messages for old restrictions and pragmas
* snames.h, snames.ads, snames.adb: Add new entry for pragma
Profile_Warnings.
* s-rident.ads: Add declarations for restrictions required by profile
Restricted and profile Ravenscar.
* targparm.ads, targparm.adb: Allow pragma Profile in system.ads
* gnat_ugn.texi: Correct some missing entries in the list of GNAT
configuration pragmas.
From-SVN: r83099
* basic-block.h (could_fall_through): Declare.
* cfganal.c (can_fallthru): Succeed if the target is EXIT_BLOCK_PTR.
Fail if the source already has a fallthrough edge to the exit
block pointer.
(could_fall_through): New function.
* cfgbuild.c (make_edges): Check if we already have a fallthrough
edge to the exit block pointer.
* cfglayout.c (fixup_fallthru_exit_predecessor): Check that it is
not called before reload has completed.
Handle special case of first block having a fall-through exit edge.
(cfg_layout_finalize): Don't call it before reload or if we have
rtl epilogues.
(fixup_reorder_chain): A fall through to the exit block does not
require the block to come last. Add sanity checks.
* cfgrtl.c (rtl_split_edge): Add special handling of fall through
edges to the exit block.
* function.c (cfglayout.h): #include.
(thread_prologue_and_epilogue_insns): If we have neither return nor
epilogue, but a fall through to the exit block from mid-function,
force a non-fall-through exit.
* Makefile.in (function.o): Depend on CFGLAYOUT_H.
From-SVN: r83089
2004-06-14 Paolo Carlini <pcarlini@suse.de>
* include/bits/locale_facets.tcc (time_get<>::_M_extract_name):
Don't use the 'magic number' 10 in the computation of __minlen;
never access __name past __minlen; in the loop over __i3, don't
decrease __nmatches and increase __i3 at once, only either of
the two; tidy.
From-SVN: r83088
2004-06-13 Daniel Berlin <dberlin@dberlin.org>
Fix PR tree-optimization/15979
Fix PR tree-optimization/15981
* tree-ssa-pre.c (insert_aux): Fix faulty logic so that we don't
try to insert values undefined along some path.
From-SVN: r83076
2004-06-13 Daniel Berlin <dberlin@dberlin.org>
* tree-ssa-pre.c (add_to_value): is_gimple_min_invariant things
are available everywhere too.
From-SVN: r83069
2004-06-13 Andrew Pinski <pinskia@physics.uc.edu>
* fold-const.c (fold_checksum_tree <case 't'>): Only
look at TREE_VALUES if the EXPR is an ENUMERAL_TYPE.
Only look at TYPE_MIN_VALUE and TYPE_MAX_VALUE if
EXPR is an INTEGERAL_TYPE or a scalar float type.
From-SVN: r83068
* random.c: Fix several spelling and formatting mistakes in
comments.
(random_r8): Fix loop to make random numbers range in [0,1(.
Co-Authored-By: Tobias Schlüter <tobias.schlueter@physik.uni-muenchen.de>
From-SVN: r83063
2004-06-13 Paolo Carlini <pcarlini@suse.de>
* include/bits/locale_facets.tcc (time_get<>::do_get_time,
time_get<>::do_get_date): Use only once _M_extract_via_format,
instead of going through "%X"/"%x" and calling it two times
(+ using widen).
From-SVN: r83059