Jakub Jelinek [Tue, 10 Mar 2015 06:38:57 +0000 (07:38 +0100)]
re PR c/65120 (Wlogical-not-parentheses should not warn about double exclamation !!)
PR c/65120
* c-common.c (warn_logical_not_parentheses): Don't warn for
!x == 0 or !x != 0.
* c-typeck.c (parser_build_binary_op): Check for tcc_comparison
before preparing arguments to warn_logical_not_parentheses.
* parser.c (cp_parser_binary_expression): Check for tcc_comparison
before preparing arguments to warn_logical_not_parentheses.
Use maybe_constant_value on rhs.
* c-c++-common/pr49706.c (fn2): Don't expect warning if enumerator
on rhs is 0.
(fn4): New test.
* c-c++-common/pr65120.c: New test.
Jan Hubicka [Tue, 10 Mar 2015 04:24:21 +0000 (05:24 +0100)]
re PR tree-optimization/65355 (vectorizer increase alignment of symbols already placed in anchors)
PR tree-optimization/65355
* varasm.c (notice_global_symbol): Do not produce RTL.
* symtab.c (symtab_node::can_increase_alignment_p): Check for section
anchor.
* tree-vect-data-refs.c (vect_compute_data_ref_alignment): Do not
check for section anchors.
* gcc.dg/vect/section-anchors-vect-69.c: Update template.
re PR go/65349 (go tool crashes, can't compile go code on 32bit linux systems)
PR go/65349
runtime: Don't call malloc from __go_file_line callback.
When crashing, we call runtime_printcreatedby which calls
__go_file_line which used to call the Go malloc. If we are
crashing due to a signal due to heap corruption of some sort,
the GO malloc lock might already be held, leading to a crash
within a crash. Avoid that by assuming that the libbacktrace
strings will stick around, as we already do in go-callers.c.
Alan Modra [Mon, 9 Mar 2015 23:18:57 +0000 (09:48 +1030)]
re PR target/65286 (When building on powerpc64le-unknown-linux-gnu, --disable-multilib must be used)
PR target/65286
* config.gcc (powerpc*-*-linux*): Arrange for powerpc64le-linux
to be single-arch by default. Set cpu_is_64bit for powerpc64
given --with-cpu=native.
* config/rs6000/t-fprules: Do not set default MULTILIB vars.
* config/rs6000/t-linux (MULTIARCH_DIRNAME): Support powerpc64
and powerpc64le.
* config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Test
rs6000_isa_flags rather than TARGET_64BIT.
Jakub Jelinek [Mon, 9 Mar 2015 18:26:52 +0000 (19:26 +0100)]
re PR c/65120 (Wlogical-not-parentheses should not warn about double exclamation !!)
PR c/65120
* c-typeck.c (parser_build_binary_op): Don't warn for
!!x == y or !b == y where b is _Bool.
* parser.c (cp_parser_binary_expression): Don't warn for
!!x == y or !b == y where b is bool.
* c-c++-common/pr49706.c: Adjust tests for not warning
about !!x == y or !b == y where b is boolean, and add
some further tests.
* c-c++-common/pr62199-2.c: Likewise.
Jakub Jelinek [Mon, 9 Mar 2015 18:25:28 +0000 (19:25 +0100)]
re PR sanitizer/63958 (bootstrap failure in the sanitizer libs on sparc-linux-gnu)
PR sanitizer/63958
Reapply:
2014-10-14 David S. Miller <davem@davemloft.net>
* sanitizer_common/sanitizer_platform_limits_linux.cc (time_t):
Define at __kernel_time_t, as needed for sparc.
(struct __old_kernel_stat): Don't check if __sparc__ is defined.
* libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.h
(__sanitizer): Define struct___old_kernel_stat_sz,
struct_kernel_stat_sz, and struct_kernel_stat64_sz for sparc.
(__sanitizer_ipc_perm): Adjust for sparc targets.
(__sanitizer_shmid_ds): Likewsie.
(__sanitizer_sigaction): Likewise.
(IOC_SIZE): Likewsie.
Richard Biener [Mon, 9 Mar 2015 13:54:28 +0000 (13:54 +0000)]
re PR ipa/65270 (issues with merging memory accesses from different code paths)
2015-03-09 Richard Biener <rguenther@suse.de>
PR middle-end/65270
* tree-core.h (enum operand_equal_flag): Add OEP_ADDRESS_OF.
* fold-const.c (operand_equal_p): When recursing for ADDR_EXPRs
operand set OEP_ADDRESS_OF. Clear it when recursing to non-bases
of that. When comparing dereferences compare alignment.
When comparing MEM_REFs or TARGET_MEM_REFs compare dependence info.
* gcc.dg/torture/pr65270-1.c: New testcase.
* gcc.dg/torture/pr65270-2.c: Likewise.
Mikael Morin [Sun, 8 Mar 2015 11:52:51 +0000 (11:52 +0000)]
re PR fortran/60898 (model compile error with gfortran 4.7 and gcc 4.9)
PR fortran/60898
fortran/
* resolve.c (resolve_symbol): Check that the symbol found by
name lookup really is the current symbol being resolved.
testsuite/
* gfortran.dg/entry_20.f90: New.
Martin Sebor [Fri, 6 Mar 2015 18:43:24 +0000 (18:43 +0000)]
re PR testsuite/63175 (FAIL: gcc.dg/vect/costmodel/ppc/costmodel-bb-slp-9a.c scan-tree-dump-times slp2" basic block vectorized using SLP" 1)
2015-03-05 Martin Sebor <msebor@redhat.com>
* PR testsuite/63175
* gcc.dg/vect/costmodel/ppc/costmodel-bb-slp-9a.c (main1): Move
checking of results into main to prevent it from getting optimized
away.
* gcc.dg/vect/costmodel/ppc/costmodel-bb-slp-9a-pr63175.c: New test.
gcc/testsuite/
* gcc.dg/tree-ssa/pr45685.c: Move to gcc.target/i386.
* gcc.target/aarch64/csneg-1.c (test_csneg_cmp): New test.
* gcc.target/i386/pr45685.c: Moved test, check for conditional move on x64.
Jan Hubicka [Fri, 6 Mar 2015 16:12:43 +0000 (17:12 +0100)]
re PR lto/65302 (LTO: ICE internal compiler error: verify_flow_info failed)
PR ipa/65302
* value-prof.c (gimple_ic): Pure dead eh edges when needed.
* g++.dg/lto/pr65302_1.C: New testcase.
* g++.dg/lto/pr65302_0.C: New testcase.
Richard Biener [Fri, 6 Mar 2015 12:34:28 +0000 (12:34 +0000)]
re PR middle-end/64928 (Inordinate cpu time and memory usage in "phase opt and generate" with -ftest-coverage -fprofile-arcs)
2015-03-06 Richard Biener <rguenther@suse.de>
PR middle-end/64928
* tree-ssa-live.h (struct tree_live_info_d): Add livein_obstack
and liveout_obstack members.
(calculate_live_on_exit): Remove.
(calculate_live_ranges): Change declaration.
* tree-ssa-live.c (liveness_bitmap_obstack): Remove global var.
(new_tree_live_info): Adjust.
(calculate_live_ranges): Delete livein when not wanted.
(calculate_live_ranges): Do not initialize liveness_bitmap_obstack.
Deal with partly deleted live info.
(loe_visit_block): Remove temporary bitmap by using
bitmap_ior_and_compl_into.
(live_worklist): Adjust accordingly.
(calculate_live_on_exit): Make static.
* tree-ssa-coalesce.c (coalesce_ssa_name): Tell calculate_live_ranges
we do not need livein.
Jonathan Wakely [Fri, 6 Mar 2015 12:31:43 +0000 (12:31 +0000)]
future (future_error(error_code)): Construct base class with error_code's message.
* include/std/future (future_error(error_code)): Construct base
class with error_code's message.
* src/c++11/future.cc (future_error::what()): Do not call c_str() on
temporary string.
compiler: Do not declare type switch variable outside case statements.
For expressions containing a TypeSwitchGuard with a short variable
declaration e.g. var := x.(type), the spec says that var is declared
at the beginning of the implicit block for each in each clause.
Previously, var was declared in the block for the switch statement
and each implicit block, which led to errors if the type case clause
referenced a type with a similar name as the declared variable.
re PR target/64342 (Tests failing when compiled with '-m32 -fpic' after r216154.)
2015-03-05 Vladimir Makarov <vmakarov@redhat.com>
PR target/64342
* lra-assigns.c (find_hard_regno_for): Rename to
find_hard_regno_for_1. Add a new parameter.
(find_hard_regno_for): New function using find_hard_regno_for_1.
David Malcolm [Thu, 5 Mar 2015 15:38:15 +0000 (15:38 +0000)]
jit documentation fixes
gcc/jit/ChangeLog:
* docs/cp/intro/tutorial03.rst: Add missing arguments to
gccjit::block::end_with_conditional call. Add on_true/on_false
comments. Tweak the wording.
* docs/intro/tutorial03.rst: Add missing arguments to
gcc_jit_block_end_with_conditional call. Add some clarifying
comments.
* docs/topics/compilation.rst: Tweak the wording to avoid an
ambiguous use of "this".
* docs/topics/contexts.rst: Fix a typo.
* docs/topics/expressions.rst (GCC_JIT_BINARY_OP_MINUS): Remove
a stray backtick.
* docs/_build/texinfo/libgccjit.texi: Regenerate.
Martin Liska [Thu, 5 Mar 2015 11:44:00 +0000 (12:44 +0100)]
Fix warnings occured during profiledboostrap on
* ipa-inline.c (inline_small_functions): Set default value to
prevent warning during bootstrap.
* tree.h: Add pragma guard that ignores false positives during
bootstrap.
Richard Biener [Thu, 5 Mar 2015 08:37:40 +0000 (08:37 +0000)]
re PR middle-end/65233 (ICE (segfault) on arm-linux-gnueabihf and aarch64-linux-gnu)
2015-03-05 Richard Biener <rguenther@suse.de>
PR middle-end/65233
* ipa-polymorphic-call.c: Include tree-ssa-operands.h and
tree-into-ssa.h.
(walk_ssa_copies): Revert last chage. Instead do not walk
SSA names registered for SSA update.
Jan Hubicka [Thu, 5 Mar 2015 00:10:29 +0000 (01:10 +0100)]
re PR ipa/65270 (issues with merging memory accesses from different code paths)
PR ipa/65270
* ipa-icf.c (sem_item::compare_cgraph_references): Compare
vtable references for their containing type.
(sem_function::equals_wpa): Compare TYPE_RESTRICT
and type attributes.
re PR target/65261 (bootstrap-ubsan ppc64le: gcc/libcpp/lex.c:552:30: runtime error: load of misaligned address 0x01002172dfc6 for type 'const uchar', which requires 16 byte alignment)
Fix PR65261
Running bootstrap-ubsan on ppc64le shows many instances of:
libcpp/lex.c:552:30: runtime error: load of misaligned address
0x01001f31d37a for type 'const uchar', which requires 16 byte alignment
But the unaligned vector loads are intended in this case, because they
are preferable to forced-alignment on POWER8. So just silence the ubsan
errors.
2015-03-02 Markus Trippelsdorf <markus@trippelsdorf.de>
include/
PR target/65261
* ansidecl.h (ATTRIBUTE_NO_SANITIZE_UNDEFINED): New macro.
* a-coinho-shared.adb: Fix clear of already empty holder.
2015-03-04 Robert Dewar <dewar@adacore.com>
* exp_unst.adb (Check_Dynamic_Type): Ignore library level types.
(Check_Uplevel_Reference_To_Type): Ignore call inside generic.
(Note_Uplevel_Reference): Ignore call inside generic.
(Note_Uplevel_Reference): Fix check for no entity field.
(Unnest_Subprogram): Ignore call inside generic.
(Find_Current_Subprogram): Use Defining_Entity, not Defining_Unit_Name.
(Visit_Node): Ignore calls to Imported subprograms.
(Visit_Node): Fix problem in finding subprogram body in some cases.
(Add_Form_To_Spec): Use Defining_Entity, not Defining_Unit_Name.
Arnaud Charlet [Wed, 4 Mar 2015 14:56:45 +0000 (15:56 +0100)]
[multiple changes]
2015-03-04 Robert Dewar <dewar@adacore.com>
* einfo.adb (Is_ARECnF_Entity): Removed.
(Last_Formal): Remove special handling of Is_ARECnF_Entity.
(Next_Formal): Remove special handling of Is_ARECnF_Entity.
(Next_Formal_With_Extras): Remove special handling of Is_ARECnF_Entity.
(Number_Entries): Minor reformatting.
* einfo.ads (Is_ARECnF_Entity): Removed.
* exp_unst.adb (Unnest_Subprogram): Remove setting of
Is_ARECnF_Entity.
(Add_Extra_Formal): Use normal Extra_Formal circuit.
* sprint.adb (Write_Param_Specs): Properly handle case where
there are no source formals, but we have at least one Extra_Formal
present.
2015-03-04 Ed Schonberg <schonberg@adacore.com>
* sem_aggr.adb (Resolve_Record_Aggregate,
Add_Discriminant_Values): If the value is a reference to the
current instance of an enclosing type, use its base type to check
against prefix of attribute reference, because the target type
may be otherwise constrained.
Nick Clifton [Wed, 4 Mar 2015 14:54:15 +0000 (14:54 +0000)]
rl78.h (enum reg_class): Remove real registers from General register class.
* config/rl78/rl78.h (enum reg_class): Remove real registers from
General register class.
* config/rl78/rl78-real.md: Replace general register constraints
with real+virtual register constraints.
Arnaud Charlet [Wed, 4 Mar 2015 10:27:59 +0000 (11:27 +0100)]
[multiple changes]
2015-03-04 Robert Dewar <dewar@adacore.com>
* einfo.adb (Is_ARECnF_Entity): New flag (ARECnF is an extra formal).
(Next_Formal): Don't return ARECnF formal.
(Last_Formal): Don't consider ARECnF formal.
(Next_Formal_With_Extras): Do consider ARECnF formal.
* einfo.ads (Is_ARECnF_Entity): New flag (ARECnF is an extra formal).
* exp_unst.adb (Create_Entities): Set Is_ARECnF_Entity flag.
2015-03-04 Javier Miranda <miranda@adacore.com>
* exp_ch6.adb (Expand_Simple_Function_Return): When the returned
object is a class-wide interface object and we generate the
accessibility described in RM 6.5(8/3) then displace the pointer
to the object to reference the base of the object (to get access
to the TSD of the object).
* sem_prag.adb (Analyze_Abstract_State): Use routine
Malformed_State_Error to issue general errors.
(Analyze_Pragma): Diagnose a syntax error related to a state
declaration with a simple option.
(Malformed_State_Error): New routine.
2015-03-04 Robert Dewar <dewar@adacore.com>
* a-strsup.adb (Super_Slice): Deal with super flat case.
* einfo.ads: Minor reformatting.
* s-imgdec.adb (Set_Decimal_Digits): Add comment about possibly
redundant code.
2015-03-04 Claire Dross <dross@adacore.com>
* a-cfdlli.ads, a-cfhase.ads, a-cforma.ads, a-cfhama.ads,
a-cforse.ads, a-cofove.ads: Use Default_Initial_Condition on formal
containers.
Arnaud Charlet [Wed, 4 Mar 2015 09:58:41 +0000 (10:58 +0100)]
[multiple changes]
2015-03-04 Ed Schonberg <schonberg@adacore.com>
* sem_warn.adb (Check_References): When checking for an unused
in-out parameter of a class- wide type, use its type to determine
whether it is private, in order to avoid a spurious warning when
subprogram spec and body are in different units.