PR c++/11295
* c-common.c (c_expand_expr, case STMT_EXPR): Change expand_expr call
to expand_expr_real call, and pass in alt_rtl as last argument.
From-SVN: r77557
2004-02-09 Ed Schonberg <schonberg@gnat.com>
* exp_ch4.adb (Expand_N_Op_Eq): When looking for the primitive equality
for a tagged type, verify that both formals have the same type.
* exp_ch6.adb (Add_Call_By_Copy_Code): Initialize properly the
temporary when the formal is an in-parameter and the actual a possibly
unaligned slice.
* exp_ch9.adb (Expand_Entry_Barrier): Resolve barrier expression even
when expansion is disabled, to ensure proper name capture with
overloaded literals. Condition can be of any boolean type, resolve
accordingly.
* sem_ch8.adb (Analyze_Subprogram_Renaming): Emit warning if the
renaming is for a formal subprogram with a default operator name, and
there is a usable operator that is visible at the point of
instantiation.
2004-02-09 Robert Dewar <dewar@gnat.com>
* ali.adb (Scan_Ali) Add Ignore_Errors argument. This is a major
rewrite to ignore errors in ali files, intended to allow tools downward
compatibility with new versions of ali files.
* ali.ads: Add new parameter Ignore_Errors
* bcheck.adb (Check_Consistent_Restrictions): Fix error of sometimes
duplicating the error message giving the file with restrictions.
* debug.adb: Add debug flag I for gnatbind
* errout.adb (Set_Msg_Insertion_Node): Suppress extra quotes around
operators for the case where the operator is a defining operator.
* exp_ch3.adb: Minor reformatting (new function spec format).
* exp_ch4.adb: Add comment for previous change, and make minor
adjustment to loop to always check for improper loop termination.
Minor reformatting throughout (new function spec format).
* gnatbind.adb: Implement -di debug flag for gnatbind
* gnatlink.adb: Call Scan_ALI with Ignore_Errors set to True
* gnatls.adb: Call Scan_ALI with Ignore_Errors set to True
* lib-load.adb: Fix bad assertion.
Found by testing and code reading.
Minor reformatting.
* lib-load.ads: Minor reformatting.
* lib-writ.adb: There is only one R line now.
* lib-writ.ads: Add documentation on making downward compatible changes
to ali files so old tools work with new ali files.
There is only one R line now.
Add documentation on format incompatibilities (with special GPS note)
* namet.ads, namet.adb: (Is_Operator_Name): New procedure
* par-load.adb: Minor reformatting
* sem_ch8.adb: Fix to error message from last update
Minor reformatting and restructuring of code from last update
* par-prag.adb, snames.adb, snames.ads, snames.h,
sem_prag.adb: Implement pragma Profile.
* stylesw.adb: Implement -gnatyN switch to turn off all style check
options.
* usage.adb: Add line for -gnatyN switch
* vms_data.ads: Add entry STYLE_CHECKS=NONE for -gnatyN
From-SVN: r77537
* fold-const.c (fold) <NOP_EXPR>: Use the original type conversion
tree code rather than call fold_convert, which doesn't specify a
default floating point to integer conversion.
* gcc.c-torture/compile/20040209-1.c: New test case.
From-SVN: r77535
2004-02-09 Albert Lee <lee@gnat.com>
* errno.c: define _SGI_MP_SOURCE for task-safe errno on IRIX
2004-02-09 Ed Schonberg <schonberg@gnat.com>
* exp_ch3.adb (Build_Slice_Assignment): Handle properly case of null
slices.
* exp_ch6.adb (Expand_Call): Do not inline a call when the subprogram
is nested in an instance that is not frozen yet, to avoid
order-of-elaboration problems in gigi.
* sem_attr.adb (Analyze_Attribute, case 'Access): Within an inlined
body the attribute is legal.
2004-02-09 Robert Dewar <dewar@gnat.com>
* s-rident.ads: Minor comment correction
* targparm.adb: Remove dependence on uintp completely. There was
always a bug in Make in that it called Targparm before initializing
the Uint package. The old code appeared to get away with this, but
the new code did not! This caused an assertion error in gnatmake.
* targparm.ads: Fix bad comment, restriction pragmas with parameters
are indeed fully supported.
From-SVN: r77531
2004-02-09 Paolo Carlini <pcarlini@suse.de>
PR libstdc++/14072
* include/bits/basic_ios.tcc (basic_ios<>::_M_cache_locale):
Don't leave dangling pointers.
* testsuite/27_io/basic_ios/imbue/14072.cc: New.
* testsuite/22_locale/numpunct/members/pod/2.cc: Tweak, the num_put
facet is needed in the final test.
From-SVN: r77526
* parse.y (resolve_qualified_expression_name): In case of inaccessible
class don't use not_accessible_field_error, which can get confused.
From-SVN: r77525
* config/m68k/m68k.h (REGISTER_NAMES): Prefix each name with
REGISTER_PREFIX.
* (M68K_FP_REG_NAME): New macro to specify an alternate name for the
frame pointer register, overridable by OS targets.
* (M68K_REGNAME): Macro to obtain register name for asm output,
eventually replacing %a6 with M68K_FP_REG_NAME.
* config/m68k/coff.h (REGISTER_NAMES): Don't redefine.
* config/m68k/linux.h (REGISTER_NAMES): Likewise.
* config/m68k/m68kelf.h (REGISTER_NAMES): Likewise.
* config/m68k/netbsd-elf.h (REGISTER_NAMES): Likewise.
* config/m68k/m68k.c: Use M68K_REGNAME(x) in place of reg_names[x].
From-SVN: r77511
* config/m68k/m68k.h (REGISTER_NAMES): Prefix each name with
REGISTER_PREFIX.
* (M68K_FP_REG_NAME): New macro to specify an alternate name for the
frame pointer register, overridable by OS targets.
* (M68K_REGNAME): Macro to obtain register name for asm output,
eventually replacing %a6 with M68K_FP_REG_NAME.
* config/m68k/coff.h (REGISTER_NAMES): Don't redefine.
* config/m68k/linux.h (REGISTER_NAMES): Likewise.
* config/m68k/m68kelf.h (REGISTER_NAMES): Likewise.
* config/m68k/netbsd-elf.h (REGISTER_NAMES): Likewise.
* config/m68k/m68k.c: Use M68K_REGNAME(x) in place of reg_names[x].
Co-Authored-By: Bernardo Innocenti <bernie@develer.com>
From-SVN: r77510
* real.c (encode_ibm_extended): Normalize the input value before
converting it to a double. Handle the case where a normal value
rounds to infinity.
From-SVN: r77498
* c-objc-common.c (): Fix a typo in a warning.
* cse.c (preferrable): Change to preferable. Update all of its
callers.
* genautomata.c (ainsn): Change
first_ainsn_with_given_equialence_num to
first_ainsn_with_given_equivalence_num. Update all of its
references.
From-SVN: r77497
2004-02-08 Paolo Carlini <pcarlini@suse.de>
* include/bits/basic_string.tcc (assign(const _CharT*, size_type)):
When working in place remember to set the state to sharable
(otherwise, _M_mutate does it).
From-SVN: r77487
* src/powerpc/ffi.c (ffi_prep_cif_machdep <FFI_LINUX64>): Correct
long double function return and long double arg handling.
(ffi_closure_helper_LINUX64): Formatting. Delete unused "ng" var.
Use "end_pfr" instead of "nf". Correct long double handling.
Localise "temp".
* src/powerpc/linux64.S (ffi_call_LINUX64): Save f2 long double
return value.
* src/powerpc/linux64_closure.S (ffi_closure_LINUX64): Allocate
space for long double return value. Adjust stack frame and offsets.
Load f2 long double return.
From-SVN: r77481
* Makefile.in, config/t-slibgcc-darwin, config/t-slibgcc-elf-ver,
config/t-slibgcc-sld, config/mips/t-iris5-6, config/sh/t-linux:
Use the top level mkinstalldirs, not the one in the gcc subdir.
* mkinstalldirs: Remove (from the gcc subdir).
From-SVN: r77466
PR middle-end/13696
* fold-const.c (fold_convert): New function to provide type
conversion to the middle-end without using convert.
(negate_expr, associate_trees, size_diffop, omit_one_operand,
operand_equal_for_comparison_p, pedantic_omit_one_operand,
invert_truthvalue, optimize_bit_field_compare, range_binop,
decode_field_reference, make_range, build_range_check, unextend,
fold_truthop, extract_muldiv_1, fold_mathfn_compare,
fold_binary_op_with_conditional_arg, fold_inf_compare,
fold_single_bit_test, fold, multiple_of_p): Replace all calls to
convert with calls to fold_convert.
* g++.dg/opt/fold1.C: New test case.
From-SVN: r77464
* genrecog.c (find_operand): add extra argument stop.
(validate_pattern): Verify that mach_dup is duplicating operand
defined lexically earlier.
From-SVN: r77461