Botcazou
* dwarf2out.c (resolve_args_picking_1): Deal with DW_OP_GNU_addr_index
and DW_OP_GNU_const_index opcodes.
2019-05-27 Eric Botcazou
* gnat.dg/specs/array4.ads: New test.
--
Eric BotcazouIndex: dwarf2out.c
e than literal ranges in most cases.
> Note that symbolic ranges are already restricted to PLUS_EXPR
> and MINUS_EXPR (and NEGATE_EXPR I think). There are
> also "symbolic" (non-integer constant) ranges like [, ].
Yes, the current implementation is restricted to additive operations.
--
Eric Botcazou
Self-explanatory. Tested on x86-64/Lnux, applied on mainline and 9 branch.
2019-05-23 Eric Botcazou
* c-ada-spec.c (compare_node): Compare the DECL_UIDs as a last resort.
--
Eric BotcazouIndex: c-ada-spec.c
===
--- c
This adds the Ada testcase that detected a since then fixed regression on the
8 branch introduced by a backport.
Tested on x86_64-suse-linux, applied on mainline, 9 and 8 branches.
2019-05-23 Eric Botcazou
* gnat.dg/opt78.ad[sb]: New test.
--
Eric Botcazou-- { dg-do compile
> Probably also required for GCC 7 then?
The problem is (probably) present there too, but that's not my call.
--
Eric Botcazou
Jakub asked me to backport the fix for PR c++/85400 initially intended for
SPARC/Solaris but which also helps on x86-64/Linux apparently.
Tested on the latter platform, applied on the 8 branch.
2019-05-22 Eric Botcazou
c-family/
Backport from mainline
2018-05-10 Eric
The interfacing with C++ assignment operators in Ada is not very clear but we
should at least make sure that the generated binding compile.
Tested on x86_64-suse-linux, applied on mainline as obvious for the cp/ part.
2019-05-21 Eric Botcazou
c-family/
* c-ada-spec.h (enum
remaining relocations. None of them plays the usual dance
with the local and global entry points implied by the ELFv2 ABI.
--
Eric Botcazou
bal entry points. We have had this patch in
our tree for some time and it works well, so let me submit it for inclusion in
the official tree.
--
Eric Botcazou
!TARGET_VXWORKS || TARGET_VXWORKS_RTP)
return true;
/* The loader neither creates the glue code sequence that loads r12 nor uses
the local entry point for the sibcall's target in the ELFv2 ABI. */
return DEFAULT_ABI != ABI_ELFv2;
}
--
Eric Botcazou
't that what define_subst does in a different context?
> Any comments? Suggestions for better names?
define_insn_and_subst?
--
Eric Botcazou
> I have now applied this variant.
You backported it onto the 8 branch on Friday:
2019-05-03 Richard Biener
Backport from mainline
[...]
2019-03-07 Richard Biener
PR tree-optimization/89595
* tree-ssa-dom.c (dom_opt_dom_walker::optimize_stmt): Take
> I have now applied this variant.
You backported it onto the 8 branch on Friday:
2019-05-03 Richard Biener
Backport from mainline
[...]
2019-03-07 Richard Biener
PR tree-optimization/89595
* tree-ssa-dom.c (dom_opt_dom_walker::optimize_stmt): Take
> 2019-04-24 Jakub Jelinek
>
> PR target/90193
> * rtl.c (classify_insn): Return JUMP_INSN for asm goto.
> * emit-rtl.c (try_split): Copy over REG_LABEL_TARGET.
>
> * gcc.target/i386/pr90193.c: New test.
OK, thanks.
--
Eric Botcazou
bits are OK and I guess we don't care about earlier 9.0.1 snapshots.
--
Eric Botcazou
orce its motion (thus a conditional doesn't do)."
i.e. this also works for a local variable that is always accessed with the
SUBREG_PROMOTED_VAR_P semantics.
--
Eric Botcazou
is put on, hence...
> (oh, and yes, I think SUBREG_PROMOTED_VAR_P is a dangerous thing,
> but so is VRP info on SSA names as we've learned...)
...yes, it is delicate to deal with.
--
Eric Botcazou
-04-09 Eric Botcazou
c-family/
* c-ada-spec.c (print_destructor): Deal with deleting destructors.
(dump_ada_declaration) : Likewise.
--
Eric BotcazouIndex: c-ada-spec.c
===
--- c-ada-spec.c (revision 270188)
+++ c
This fixes a small issue that may be present when you use -fdump-ada-spec with
very recent glibc releases. Tested on Ubuntu 18.04, applied on the mainline.
2019-04-07 Eric Botcazou
c-family/
* c-ada-spec.c (is_float128): New predicate extracted from...
(dump_ada_node) : Use
> I have backported it onto the 8 branch, where it fixes the failure (timeout)
> of gnat.dg/opt73.adb for PowerPC/Linux, after testing it on this platform.
And now onto the 7 branch, after testing on x86-64/Linux and PowerPC/Linux.
--
Eric Botcazou
e3 compilers and that isn't
what happens. Instead the compiler of each stage is updated in isolation.
--
Eric Botcazou
With the same error message as on SPARC/Solaris (as I have neither the time
nor the energy to get through the awkward upstream submission process again).
Tested on SPARC/Solaris and SPARC/Linux, applied on the mainline.
2019-04-02 Eric Botcazou
* config/sparc/linux64.h
Tested on x86_64-pc-mingw32, OK for the mainline?
2019-03-30 Eric Botcazou
* src/c++17/fs_ops.cc (fs::permissions): Use std::errc::not_supported.
--
Eric Botcazoudiff --git libstdc++-v3/src/c++17/fs_ops.cc libstdc++-v3/src/c++17/fs_ops.cc
index 3ff0ded1c66..5ca523826cb 100644
> I have also tested the patch with x86_64-linux-gnu with no new regressions.
> Is this OK for trunk?
Yes, but please put it on all active branches.
--
Eric Botcazou
> I modified the patch.
> Please let me know your thoughts.
Thanks. This version is certainly better, but I cannot approve it myself.
Uros, given that the bug was fixed in 64-bit mode for GCC 9, I think that it
would make sense to have it fixed in 32-bit mode too.
--
Eric Botcazou
the back-ends to support this (look for trampolines/descriptors
in the manual and the source code). This should essentially work out of the
box for any language front-end.
--
Eric Botcazou
> There were REG_EQUAL notes on these tls calls in the past, but I
> recall removing them for one reason or another. So watch out for
> fall-out from this patch! ;-)
Others ports have them though, for example i386, ARM and SPARC.
--
Eric Botcazou
> The attached patch (pr85667.patch) fixes the subjected issue for 32-bit.
> Please let me know your thoughts on the patch.
IMO you ought not to duplicate most of function_value_32 here.
--
Eric Botcazou
out of thin air.
> IIRC there are other places that have similar logic and rely on
> ssa_name_has_boolean_range to filter out anything undesirable.
The other places are more careful, i.e. they explicitly test for 0 or 1.
--
Eric Botcazou
> Not if the >> 3 shift is arithmetic shift.
Sorry, I don't understand how this can work.
--
Eric Botcazou
rtl-optimization/89679
> * expmed.c (expand_mult_const): Don't add a REG_EQUAL note if it
> would contain a paradoxical SUBREG.
My vote would be for this one.
--
Eric Botcazou
> high memory would precede the shadow for the low memory.
But you still need to chop the high bits, otherwise you end up in the hole.
--
Eric Botcazou
h more convoluted...
Moreover, I'm not sure this is a very important issue, people presumably don't
run binaries compiled with -fsanitize=address in production, so having to
recompile with a matching GCC version doesn't seem that much of a hurdle.
--
Eric Botcazou
ing libsanitizer changes?
Of course, just merged.
--
Eric Botcazou
This patch contains the bits required to make the AddressSanitizer work on
SPARC64/Linux (SPARC-T4 and later). It only affects the SPARC ports and has
been tested on SPARC/Solaris and SPARC64/Linux.
It merges r355980 of the LLVM repository. Installed on the mainline.
2019-03-13 Eric
. Installed on the mainline.
2019-03-13 Eric Botcazou
PR sanitizer/80953
Merge from LLVM revision 355979
* asan/asan_globals.c (GetGlobalsForAddress): Use internal_memcpy to
copy Global objects for SPARC with GCC.
--
Eric BotcazouIndex: asan/asan_globals.cc
This patch contains the bits required to make the common 32-bit allocator work
on SPARC64/Linux. It only affects the SPARC ports and has been tested on
SPARC/Solaris and SPARC64/Linux.
It merges r355978 of the LLVM repository. Installed on the mainline.
2019-03-13 Eric Botcazou
.
2019-03-13 Eric Botcazou
PR sanitizer/80953
Merge from LLVM revision 355965
* sanitizer_common/sanitizer_linux.cc (GetWriteFlag): Implement for
SPARC/Linux.
(GetPcSpBp): Likewise.
* sanitizer_common/sanitizer_stacktrace.cc (GetNextInstructionPc
for SPARC. It
yields a 100% clean ASAN testsuite on SPARC64/Linux (32-bit and 64-bit).
Tested on SPARC64/Linux, SPARC/Solaris and x86-64/Linux, OK for the mainline?
2019-03-11 Eric Botcazou
PR sanitizer/80953
* target.def (asan_shadow_left_shift): New hook
> Hmm, this looks fragile - isn't the same effect when using
> -fdisable-tree-cunroll?
Maybe.
> That is, it looks like we could "move" the assert to decide_unrolling
> instead, deciding LPT_NONE?
We already have a guard for the assertion but it is bypassed here.
I'm going to commit this
fix is just to
disable the pragma altogether when the option is passed.
Tested on x86_64-suse-linux, OK for mainline and 8 branch?
2019-03-11 Eric Botcazou
PR rtl-optimization/89588
* tree-cfg.c (replace_loop_annotate_in_block) :
Skip annotation and warn if -fno-tree-l
cisely replace a bogus value,
which we know is impossible given the [0, 1] range, by 0 or 1.
--
Eric Botcazou
O you haven't justified why this is problematic in the BIT_NOT_EXPR case and
not in the BIT_AND_EXPR case...
--
Eric Botcazou
the value is 0 instead of the entire value.
* gcc.c-torture/execute/20190228-1.c: New test.
--
Eric Botcazou/* PR tree-optimization/89536 */
/* Testcase by Zhendong Su */
int a = 1;
int main (void)
{
a = ~(a && 1);
if (a < -1)
a = ~a;
if (!a)
__b
OK for trunk?
>
> * haifa-sched.c (find_fallthru_edge_from): Relax assert to account for
> fallthru edges leading to the exit block.
>
> * gcc.dg/pr85899.c: New test.
OK, thanks.
--
Eric Botcazou
.
2019-02-26 Eric Botcazou
* config/sparc/sparc-opts.h (enum processor_type): Rename to...
(enum sparc_processor_type): ...this.
(enum sparc_code_model_type): New enumeration type.
(enum sparc_memory_model_type): Tweak comments.
* config/sparc/sparc.opt (mcpu
> * rtlanal.c (get_initial_register_offset): Fall back to the raw estimate
> as long as the epilogue isn't completed.
I have backported it onto the 8 branch, where it fixes the failure (timeout)
of gnat.dg/opt73.adb for PowerPC/Linux, after testing it on this platform.
--
for
boolean types, I think that the same special treatment must be added for
boolean types in the BIT_NOT_EXPR case to preserve the 0-or-1-value invariant.
Bootstrapped/regtested on x86_64-suse-linux, OK for mainline and 8 branch?
2019-02-25 Eric Botcazou
* tree-ss
t by default and they
are supported on a bunch of other targets...
--
Eric Botcazou
:_ZSt11__once_call@@GLIBCXX_3.4.11
> +TLS:8:_ZSt15__once_callable@@GLIBCXX_3.4.11
Now removed for the sake of consistency with the SPARC/Linux twin port.
--
Eric Botcazou
> 2019-02-20 Eric Botcazou
>
> * configure.host (abi_baseline_pair): Adjust for SPARC64/Linux.
> * config/abi/post/sparc64-linux-gnu: New directory.
> * config/abi/post/sparc64-linux-gnu/baseline_symbols.txt: New file.
> * config/abi/post/sp
Tested on SPARC64/Linux, OK for the mainline?
2019-02-20 Eric Botcazou
* configure.host (abi_baseline_pair): Adjust for SPARC64/Linux.
* config/abi/post/sparc64-linux-gnu: New directory.
* config/abi/post/sparc64-linux-gnu/baseline_symbols.txt: New file
itial_register_offset
stuff in rtlanal.c) so it can be viewed as a safety net too. :-)
> I guess that approach means that TARGET_COMPUTE_FRAME_LAYOUT isn't really
> optional though.
IMO another workaround for the underlying issue.
--
Eric Botcazou
do we want to fix this?
>
>
> * rtlanal.c (get_initial_register_offset): Fall back to the raw estimate
> as long as the epilogue isn't completed.
I have installed it on mainline only for now.
--
Eric Botcazou
This gets rid of a bunch of Go failures on SPARC.
Tested on x86-64/Linux, SPARC/Solaris and SPARC64/Linux.
2019-02-16 Eric Botcazou
* go/runtime/malloc.go (persistentalloc1): Always align the offset.
--
Eric BotcazouIndex: go/runtime/malloc.go
> It cannot pass in PIE mode.
Likewise for the 3 c-c++-common/patchable_function_entry-*.c on SPARC.
Tested on x86-64/Linux and SPARC64/Linux, applied on mainline and 8 branch.
2019-02-16 Eric Botcazou
* c-c++-common/patchable_function_entry-decl.c: Add -fno-pie on SP
One of the tests in g++.dg/asan/asan_oob_test.cc uses unaligned memory
accesses and g++.dg/asan/function-argument-3.C assumes a specific kind of
calling conventions for vectors.
Tested on SPARC64/Linux, applied on the mainline.
2019-02-15 Eric Botcazou
* g++.dg/asan
This automatically passes -funwind-tables when ASAN is used on Linux, as done
for other architectures, and also adjusts the shadow offset in 64-bit mode.
Tested on SPARC64/Linux, applied on the mainline.
2019-02-15 Eric Botcazou
* config/sparc/linux.h (ASAN_CC1_SPEC): Define
> I'm ready to commit the patch once it's approved, and have been since
> the day the problem was reported.
Maybe CCing whoever approved the previous patch would help?
--
Eric Botcazou
> > OK, revised patch attached. I have manually verified that it yields the
> > expected result for an array of long doubles on 64-bit SPARC.
> >
> >
> > 2019-02-12 Eric Botcazou
> >
> > * asan.c (asan_expand_mark_ifn): Take into account t
s of GNAT is to be
compatible with C by default as much as possible. But we started to do some
reordering recently when the records don't have (direct) equivalents in C.
--
Eric Botcazou
It cannot pass in PIE mode.
Tested on SPARC64/Linux, applied on all active branches.
2019-02-15 Eric Botcazou
* gcc.target/sparc/struct-ret-check-1.c: Add -fno-pie option.
--
Eric Botcazou
Index: gcc.target/sparc/struct-ret-check-1.c
The only interesting one is gcc.dg/tree-ssa/pr84859.c: for it to pass, the
undocumented -ftree-cselim must be enabled, which is done automatically only
on targets with conditional moves, what the Visium is not.
Tested on visium-elf, applied on the mainline and 8 branch.
2019-02-15 Eric
on the mainline.
2019-02-15 Eric Botcazou
libgcc/
* config/visium/lib2funcs.c (__set_trampoline_parity): Replace
TRAMPOLINE_SIZE with __LIBGCC_TRAMPOLINE_SIZE__.
gcc/
* final.c (insn_current_reference_address): Replace test on JUMP_P
with test on jump_to_label_p
Hi,
this is a regression present on all active branches since the controversial
get_initial_register_offset stuff was added to rtlanal.c some time ago, and
visible in the testsuite on PowerPC/Linux under the form of gnat.dg/opt73.adb
timing out at run time.
The problem is that the compiler
ertently didn't build.
Can we do something here? Our internal testers have been down for 3 days
because of this blunder...
--
Eric Botcazou
ttern, 2 'wi' constraints have it
but not the other 2. Likewise for "wv'.
--
Eric Botcazou
iently (e.g., `QImode' for values in the range 0-127;
note we avoid numbers that appear negative) and also a pattern
with `Pmode'.
That being said, your patch doesn't change the interpretation so is OK.
--
Eric Botcazou
ace_sparc.cc).
No, it will not be necessary, I have ported the implementation to 64-bit.
--
Eric Botcazou
o).
Doesn't the current check make sure that the RTL constant is valid for the
mode though (since RTL constants are sign-extended for their mode)? See
emit_block_move_via_movmem for an equivalent check with GET_MODE_MASK >> 1.
--
Eric Botcazou
es on 64-bit SPARC.
2019-02-12 Eric Botcazou
* asan.c (asan_expand_mark_ifn): Take into account the alignment of
the object to pick the size of stores on strict-alignment platforms.
--
Eric BotcazouIndex: asan.c
==
the DI patterns? As a
matter of fact there are still present in the SI pattern.
--
Eric Botcazou
2 doubles
at address 0x1008 will have a shadow address of 0x2001 modulo the
offset so you cannot use size 2. Moveover the store merging pass should be
able to merge the stores so I don't really understand why this matters at all.
--
Eric Botcazou
as well, which can be modified through -fasan-shadow-offset?
--
Eric Botcazou
output pattern test
FAIL: gcc.dg/asan/use-after-scope-5.c -Os output pattern test
FAIL: gcc.dg/asan/use-after-scope-5.c -O2 -flto -flto-partition=none output
pattern test
FAIL: gcc.dg/asan/use-after-scope-5.c -O2 -flto output pattern test
OK for mainline?
2019-02-11 Eric Botcazou
rget/powerpc testsuite.
--
Eric Botcazou
arger than
> MAX_SUPPORTED_STACK_ALIGNMENT.
OK, thanks.
--
Eric Botcazou
ks!) so you can go ahead with the patch.
--
Eric Botcazou
the clause if the source
is an aggregate, thus generating an out-of-bounds read.
Tested on x86_64-suse-linux, applied on mainline.
2019-02-08 Eric Botcazou
* gcc-interface/trans.c (gnat_to_gnu) : Minor tweak.
* gcc-interface/utils.c (convert): Do not pad when doing an unchecked
.
2019-02-08 Eric Botcazou
* gcc-interface/utils.c (max_size) : Be prepared for an
operand with VOID_TYPE.
--
Eric BotcazouIndex: gcc-interface/utils.c
===
--- gcc-interface/utils.c (revision 268508)
+++ gcc-interface
This is a regression present on all active branches: in some cases, you get
bogus profile mismatches with -fprofile-{generate,use} at -O2 because some -O3
optimizations are automatically enabled by -fprofile-use.
Tested on x86_64-suse-linux, applied on all active branches.
2019-02-08 Eric
on path, i.e. server processors,
while preserving the historical path for other processors. AFAIK nobody has
evaluated the effects of the original change beyond POWER 7/8/9.
> Could you open a PR please?
Sure, but about what now? ;-)
--
Eric Botcazou
> Between 20181106 (r265849) and 20181107 (r265879), gnat.dg/lto19.adb
> started to XPASS everywhere:
>
> XPASS: gnat.dg/lto19.adb (test for excess errors)
The idea was to wait until Jan fixes the lto8 failure introduced roughly at
the same time...
--
Eric Botcazou
PR rtl-optimization/89234
> * except.c (copy_reg_eh_region_note_forward): Return if note_or_insn
> is a NOTE, CODE_LABEL etc. - rtx_insn * other than INSN_P.
> (copy_reg_eh_region_note_backward): Likewise.
>
> * g++.dg/ubsan/pr89234.C: New test.
OK, thanks.
--
Eric Botcazou
The tasking is terminally broken on SPARC/Linux with the mainline compiler.
The problem is also visible on other branches if you compile the runtime with
assertions enabled.
Tested on SPARC64/Linux, applied on all active branches.
2019-02-07 Eric Botcazou
* libgnarl/s
.
Thoughts?
--
Eric Botcazou
diff --git a/gcc/config/rs6000/rs6000.md b/gcc/config/rs6000/rs6000.md
index 8d0b58cc6d6..89812a03d74 100644
--- a/gcc/config/rs6000/rs6000.md
+++ b/gcc/config/rs6000/rs6000.md
@@ -8565,16 +8565,16 @@
(define_insn "*movdi_internal32"
[(set (match_op
variable. The proposed fix is
to add a memory blockage, like in other frame-related constructs.
Tested on x86/Windows and x86-64/Windows, OK for all active branches?
2019-02-06 Eric Botcazou
* config/i386/i386.c (ix86_expand_prologue): Generate a memory blockage
after restoring
Eric Botcazou
* config/sparc/sparc.h: Remove superfluous blank lines.
* config/sparc/sparc.c (global_offset_table_rtx): Rename into...
(got_register_rtx): ...this.
(sparc_got): Adjust to above renaming.
(sparc_tls_got): Likewise
nd go to bed. ;-)
--
Eric Botcazou
s to guard against, so I
> believe from security POV this shouldn't weaken anything, but fixes the
> testcase.
This moves the stack protect epilogue from after the naked_return_label to
before though, so it will be skipped for a naked return.
--
Eric Botcazou
despite the small risk.
Tested on x86_64-suse-linux, applied on the mainline.
2019-01-27 Eric Botcazou
* repinfo.adb (List_Component_Layout): Remove superfluous space for
zero-sized field.
* gcc-interface/ada-tree.h (TYPE_IS_EXTRA_SUBTYPE_P): New macro.
* gcc
.
2019-01-27 Eric Botcazou
* gcc-interface/decl.c (array_type_has_nonaliased_component): Return
the same value for every dimension of a multidimensional array type.
2019-01-27 Eric Botcazou
* gnat.dg/opt75.adb: New test.
* gnat.dg/opt75_pkg.ad[sb]: New helper
alignment than the
natural one.
Tested on x86_64-suse-linux, applied on all active branches.
2019-01-26 Eric Botcazou
* gcc-interface/trans.c (gnat_to_gnu) : Use
DECL_SIZE_UNIT instead of TYPE_SIZE_UNIT for the size to be assigned
by a call to memset if the LHS is a DECL
This does a small tweak in gnat_to_gnu with no functional changes and fixes
some formatting issues in recently added code.
Tested on x86_64-suse-linux, applied on the mainline.
2019-01-26 Eric Botcazou
* gcc-interface/trans.c (Iterate_Acc_Clause_Arg): Fix formatting
t_Size use 1048544;
for Rec'Value_Size use (((#1 max 1) + 0) * 32);
for Rec'Alignment use 4;
for Rec use record
D at 0 range 0 .. 15;
A at 4 range 0 .. ??;
end record;
Tested on x86_64-suse-linux, applied on all active branches.
2019-01-26 Eric Botcazou
* gcc-interface/
e
> @code{tablejump_p} insn refers to that @code{code_label} via its
> @code{JUMP_LABEL}.
>
> Which of these two is true?
The latter I'd say, see skip_insns_after_block.
--
Eric Botcazou
for the mainline?
2019-01-22 Eric Botcazou
* cgraphunit.c (cgraph_node::expand_thunk): When expanding a GIMPLE
thunk that returns by reference, use the type of the return object
of the thunk instead of that of the alias to build the dereference.
2019-01-23 Eric Botcazou
ize = dwarf_reg_size_table[__builtin_dwarf_sp_column ()];
if (size == sizeof(_Unwind_Ptr))
tmp_sp->ptr = (_Unwind_Ptr) cfa;
else
{
gcc_assert (size == sizeof(_Unwind_Word));
tmp_sp->word = (_Unwind_Ptr) cfa;
}
which is quite unexpected.
--
Eric Botcazou
er it to -O1 or -O0?
--
Eric Botcazou
> Ah, that makes sense since the 32-bit SEH is different from the 64-bit one,
> explains why the 64-bit builds work.
Which EH mechanism does the base compiler use? The default one? We know that
this works with the DWARF-2 mechanism (--disable-sjlj-exceptions).
--
Eric Botcazou
801 - 900 of 5463 matches
Mail list logo