Ozkan Sezer [Thu, 19 Mar 2009 10:40:32 +0000 (10:40 +0000)]
re PR target/39063 (libgcc2.c:mprotect() for mingw, incompatible pointer type warning)
PR target/39063
* libgcc2.c (mprotect): Do not use signed arguments for
VirtualProtect, use DWORD arguments. Also fix the 'may
be used uninitialized' warning for the np variable.
Jakub Jelinek [Thu, 19 Mar 2009 10:25:43 +0000 (11:25 +0100)]
re PR target/39496 (GCC uses non-standard calling conventions for static functions with -O0.)
PR target/39496
* config/i386/i386.c (ix86_function_regparm): Don't optimize local
functions using regparm calling conventions when not optimizing.
(ix86_function_sseregparm): Similarly for sseregparm calling
conventions.
* gcc.target/i386/pr39496.c: New test.
* g++.dg/other/pr39496.C: New test.
* graphite.c (exclude_component_ref): Renamed contains_component_ref_p.
(is_simple_operand): Call contains_component_ref_p before calling data
reference analysis that would fail on COMPONENT_REFs.
Jason Merrill [Tue, 17 Mar 2009 23:31:18 +0000 (19:31 -0400)]
decl.c (grokfndecl): Set DECL_CONTEXT on parms.
cp/:
* decl.c (grokfndecl): Set DECL_CONTEXT on parms.
(duplicate_decls): Adjust DECL_CONTEXT of newdecl's parms.
* pt.c (check_explicit_specialization): Likewise.
(tsubst_copy) [PARM_DECL]: Return a dummy parm if we don't have a
local specialization.
* tree.c (cp_tree_equal) [PARM_DECL]: Check type and index, not name.
* decl2.c (parm_index): New fn.
* semantics.c (finish_decltype_type): Don't use describable_type.
* mangle.c (write_expression): Likewise. Mangle ALIGNOF_EXPR.
Give a sorry for unsupported codes rather than crash. Mangle
conversions with other than 1 operand. New mangling for PARM_DECL.
* operators.def (ALIGNOF_EXPR): Mangle as az.
* include/demangle.h (enum demangle_component_type): Add
DEMANGLE_COMPONENT_FUNCTION_PARAM.
* libiberty/cp-demangle.c (d_make_function_param): new fn.
(cplus_demangle_mangled_name): Work around abi v2 bug.
(d_expr_primary): Likewise.
(cplus_demangle_operators): Add alignof ops.
(d_expression): Handle function parameters and conversions
with other than 1 operand.
(d_print_comp): Handle function parameters. Fix bug with
function used in type of function.
Ralf Wildenhues [Tue, 17 Mar 2009 21:25:59 +0000 (21:25 +0000)]
re PR middle-end/37805 (gcc --help=separate)
gcc/
PR middle-end/37805
* opts.c (print_specific_help): In addition to `undocumented',
accept `separate' and `joined' flags if passed alone. Describe
output by the first matched one of those.
(common_handle_option): Skip over empty strings.
* gcc.c (display_help): Fix help string for `--help='.
* doc/invoke.texi (Option Summary, Overall Options): With
`--help=', classes and qualifiers can both be repeated, but
only the latter can be negated. One should not pass only
negated qualifiers. Fix markup and examples.
Jing Yu [Tue, 17 Mar 2009 20:18:21 +0000 (20:18 +0000)]
re PR middle-end/39378 (Multiple inheritence thunk not working with -mthumb)
2009-03-12 Jing Yu <jingyu@google.com>
PR middle-end/39378
* function.h: Move is_thunk from rtl_data structure to function
structure.
* cp/method.c (use_thunk): Change is_thunk from crtl to cfun.
* varasm.c (assemble_start_function): Change is_thunk from crtl to
cfun.
* config/alpha/alpha.c: Change is_thunk from crtl to cfun.
* config/rs6000/rs6000.c: Change is_thunk from crtl to cfun.
* config/arm/arm.h: Change is_thunk from crtl to cfun.
* testsuite/g++.dg/inherit/thunk10.C: New file.
Patch submitted by Doug Kwan <dougkwan@google.com>
Uros Bizjak [Tue, 17 Mar 2009 18:55:40 +0000 (19:55 +0100)]
re PR target/39482 (ICE in inline_secondary_memory_needed, at config/i386/i386.c:25478)
PR target/39482
* config/i386/i386.md (*truncdfsf_mixed): Avoid combining registers
from different units in a single alternative.
(*truncdfsf_i387): Ditto.
(*truncxfsf2_mixed): Ditto.
(*truncxfdf2_mixed): Ditto.
testsuite/ChangeLog:
PR target/39482
* gcc.target/i386/pr39482.c: New test.
* name-lookup.c (cp_emit_debug_info_for_using): Emit USING_STMTs
instead of calling imported_module_or_decl debug hook if
building_stmt_tree ().
* cp-gimplify.c (cp_gimplify_expr): Don't assert the first operand
is a NAMESPACE_DECL.
Jakub Jelinek [Tue, 17 Mar 2009 17:49:28 +0000 (18:49 +0100)]
re PR debug/39471 (DW_TAG_imported_module should be used (not DW_TAG_imported_declaration))
PR debug/39471
* dwarf2out.c (dwarf2out_imported_module_or_decl_1): Emit
DW_TAG_imported_module even if decl is IMPORTED_DECL with
NAMESPACE_DECL in its DECL_INITIAL.
* cp-gimplify.c (cp_gimplify_expr): Don't set DECL_NAME
on IMPORTED_DECL.
* g++.dg/debug/dwarf2/imported-module-2.C: Expect
DW_TAG_imported_module, not just any DW_TAG_imported prefixed tag.
* g++.dg/debug/dwarf2/imported-module-3.C: Likewise.
* g++.dg/debug/dwarf2/imported-module-4.C: Likewise.
Janis Johnson [Tue, 17 Mar 2009 17:35:55 +0000 (17:35 +0000)]
re PR testsuite/38526 (WARNING: Could not compile gcc.dg/compat/struct-layout-1 generator)
gcc/
PR testsuite/38526
* Makefile.in (site.exp): Rename TEST_GCC_EXEC_PREFIX and comment
its use.
(check-%): Don't set GCC_EXEC_PREFIX when invoking runtest.
(check-parallel-%): Ditto.
(check-consistency): Ditto.
testsuite/
PR testsuite/38526
* lib/target-libpath.exp (set_ld_library_path_env_vars): Save
existing GCC_EXEC_PREFIX, set to TEST_GCC_EXEC_PREFIX if that
is defined.
(restore_ld_library_path_env_vars): Restore GCC_EXEC_PREFIX to
its original value, or unset if it was not defined.
* gcc.dg/compat/struct-layout-1.exp: Use set/restore library
path procs around use of HOSTCC.
* g++.dg/compat/struct-layout-1.exp: Ditto.
* objc.dg/gnu-encoding/gnu-encoding.exp: Ditto.
Anatoly Sokolov [Sun, 15 Mar 2009 13:09:44 +0000 (16:09 +0300)]
re PR target/34299 ([avr] ICE on function attribute syntax for main())
PR target/34299
* config/avr/avr.c (avr_handle_fndecl_attribute): Move code for
generate a warning if the function name does not begin with
"__vector" and the function has either the 'signal' or 'interrupt'
attribute, from here to ...
(avr_declare_function_name): ...here. New function.
* config/avr/avr.h (ASM_DECLARE_FUNCTION_NAME): Redefine.
* config/avr/avr-protos.h (avr_declare_function_name): Declare.
Jakub Jelinek [Sat, 14 Mar 2009 08:10:55 +0000 (09:10 +0100)]
re PR bootstrap/39454 (Bootstrap failure on sparcv9-linux with profiledbootstrap)
PR bootstrap/39454
* cse.c (fold_rtx): Don't modify original const_arg1 when
canonicalizing SHIFT_COUNT_TRUNCATED shift count, do it on a
separate variable instead.
* rtlanal.c (nonzero_bits1) <case ASHIFTRT>: Don't assume anything
from out of range shift counts.
(num_sign_bit_copies1) <case ASHIFTRT, case ASHIFT>: Similarly.
Jakub Jelinek [Thu, 12 Mar 2009 20:45:39 +0000 (21:45 +0100)]
re PR target/39431 (ICE in spill_failure, at reload1.c:2093)
PR target/39431
* config/i386/predicates.md (cmpxchg8b_pic_memory_operand): New
predicate.
* config/i386/sync.md (sync_compare_and_swap<mode>,
sync_compare_and_swap_cc<mode>): For DImode with -m32 -fpic check
if operands[1] is cmpxchg8b_pic_memory_operand, if not force address
into a register.
(sync_double_compare_and_swapdi_pic,
sync_double_compare_and_swap_ccdi_pic): Require operand 1 to be
cmpxchg8b_pic_memory_operand instead of just memory_operand.
Vladimir Makarov [Thu, 12 Mar 2009 14:39:55 +0000 (14:39 +0000)]
re PR debug/39432 (gdb.base/store.exp failures)
2009-03-12 Vladimir Makarov <vmakarov@redhat.com>
PR debug/39432
* ira-int.h (struct allocno): Fix comment for calls_crossed_num.
* ira-conflicts.c (ira_build_conflicts): Prohibit call used
registers for allocnos created from user-defined variables.
Jakub Jelinek [Wed, 11 Mar 2009 21:12:33 +0000 (22:12 +0100)]
re PR target/39137 (-mpreferred-stack-boundary=2 causes lots of dynamic realign)
PR target/39137
* cfgexpand.c (get_decl_align_unit): Use LOCAL_DECL_ALIGNMENT
macro.
* defaults.h (LOCAL_DECL_ALIGNMENT): Define if not yet defined.
* config/i386/i386.h (LOCAL_DECL_ALIGNMENT): Define.
* config/i386/i386.c (ix86_local_alignment): For
-m32 -mpreferred-stack-boundary=2 use 32-bit alignment for
long long variables on the stack to avoid dynamic realignment.
Allow the first argument to be a decl rather than type.
* doc/tm.texi (LOCAL_DECL_ALIGNMENT): Document.
* gcc.target/i386/stackalign/longlong-1.c: New test.
* gcc.target/i386/stackalign/longlong-2.c: New test.
Nick Clifton [Wed, 11 Mar 2009 16:08:41 +0000 (16:08 +0000)]
re PR target/5362 (Undocumented target options)
PR target/5362
* config/fr30/fr30.opt: Document the -mno-lsim option.
* doc/invoke.texi: Add descriptions of the FR30's -msmall-model
and -mno-lsim options.
Olivier Hainque [Wed, 11 Mar 2009 14:20:07 +0000 (14:20 +0000)]
trans.c (gnat_to_gnu): In range check processing...
ada/
* gcc-interface/trans.c (gnat_to_gnu) <case N_Slice>: In range
check processing, remove unintended TREE_TYPE walk on index type
to get to base type.
Jason Merrill [Wed, 11 Mar 2009 05:01:30 +0000 (01:01 -0400)]
re PR debug/39086 (ICE in decl_ultimate_origin, at dwarf2out.c:5770 when compiling with -fno-tree-sra)
PR debug/39086
* tree-nrv.c (tree_nrv): Don't do this optimization if the front
end already did. Notice GIMPLE_CALL modifications of the result.
Don't copy debug information from an ignored decl or a decl from
another function.