public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug tree-optimization/108540] New: [13 Regression] Frange miscompilation of ruby since r13-3261
@ 2023-01-25 15:48 jakub at gcc dot gnu.org
2023-01-25 15:52 ` [Bug tree-optimization/108540] " jakub at gcc dot gnu.org
` (8 more replies)
0 siblings, 9 replies; 10+ messages in thread
From: jakub at gcc dot gnu.org @ 2023-01-25 15:48 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108540
Bug ID: 108540
Summary: [13 Regression] Frange miscompilation of ruby since
r13-3261
Product: gcc
Version: 13.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: tree-optimization
Assignee: unassigned at gcc dot gnu.org
Reporter: jakub at gcc dot gnu.org
Target Milestone: ---
Since r13-3261-ga0c1a059101a3067d96211cbc4fae5905796d1db ruby is miscompiled
with LTO on powerpc64le-linux.
I've hand reduced it to:
#include <stdarg.h>
__attribute__((noipa)) void
bar (const char *cp, unsigned long size, char sign, int dsgn)
{
if (__builtin_strcmp (cp, "ZERO") != 0 || size != 4 || sign != '-' || dsgn !=
1)
__builtin_abort ();
}
__attribute__((noipa)) void
foo (int x, int ch, ...)
{
va_list ap;
const char *cp = "";
unsigned long size = 0;
char sign = '\0';
double d;
va_start (ap, ch);
switch (x)
{
case 42:
d = va_arg (ap, double);
if (__builtin_isinf (d))
{
if (d < 0)
sign = '-';
cp = "Inf";
size = 3;
break;
}
if (__builtin_isnan (d))
{
cp = "NaN";
size = 3;
break;
}
if (d < 0)
{
d = -d;
sign = '-';
}
else if (d == 0.0 && __builtin_signbit (d))
sign = '-';
else
sign = '\0';
if (ch == 'a' || ch == 'A')
{
union U { long long l; double d; } u;
int dsgn;
u.d = d;
if (u.l < 0)
{
dsgn = 1;
u.l &= 0x7fffffffffffffffLL;
}
else
dsgn = 0;
if (__builtin_isinf (d))
{
cp = "INF";
size = 3;
}
else if (__builtin_isnan (d))
{
cp = "NAN";
size = 3;
}
else if (d == 0)
{
cp = "ZERO";
size = 4;
}
else
{
cp = "WRONG";
size = 5;
}
bar (cp, size, sign, dsgn);
}
}
va_end (ap);
}
int
main ()
{
foo (42, 'a', -0.0);
return 0;
}
^ permalink raw reply [flat|nested] 10+ messages in thread
* [Bug tree-optimization/108540] [13 Regression] Frange miscompilation of ruby since r13-3261
2023-01-25 15:48 [Bug tree-optimization/108540] New: [13 Regression] Frange miscompilation of ruby since r13-3261 jakub at gcc dot gnu.org
@ 2023-01-25 15:52 ` jakub at gcc dot gnu.org
2023-01-26 11:27 ` jakub at gcc dot gnu.org
` (7 subsequent siblings)
8 siblings, 0 replies; 10+ messages in thread
From: jakub at gcc dot gnu.org @ 2023-01-25 15:52 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108540
Jakub Jelinek <jakub at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|UNCONFIRMED |NEW
Last reconfirmed| |2023-01-25
CC| |aldyh at gcc dot gnu.org,
| |amacleod at redhat dot com
Target Milestone|--- |13.0
Ever confirmed|0 |1
Priority|P3 |P1
--- Comment #1 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
stdarg.h isn't needed, so:
__attribute__((noipa)) void
bar (const char *cp, unsigned long size, char sign, int dsgn)
{
if (__builtin_strcmp (cp, "ZERO") != 0 || size != 4 || sign != '-' || dsgn !=
1)
__builtin_abort ();
}
__attribute__((noipa)) void
foo (int x, int ch, double d)
{
const char *cp = "";
unsigned long size = 0;
char sign = '\0';
switch (x)
{
case 42:
if (__builtin_isinf (d))
{
if (d < 0)
sign = '-';
cp = "Inf";
size = 3;
break;
}
if (__builtin_isnan (d))
{
cp = "NaN";
size = 3;
break;
}
if (d < 0)
{
d = -d;
sign = '-';
}
else if (d == 0.0 && __builtin_signbit (d))
sign = '-';
else
sign = '\0';
if (ch == 'a' || ch == 'A')
{
union U { long long l; double d; } u;
int dsgn;
u.d = d;
if (u.l < 0)
{
dsgn = 1;
u.l &= 0x7fffffffffffffffLL;
}
else
dsgn = 0;
if (__builtin_isinf (d))
{
cp = "INF";
size = 3;
}
else if (__builtin_isnan (d))
{
cp = "NAN";
size = 3;
}
else if (d == 0)
{
cp = "ZERO";
size = 4;
}
else
{
cp = "WRONG";
size = 5;
}
bar (cp, size, sign, dsgn);
}
}
}
int
main ()
{
foo (42, 'a', -0.0);
return 0;
}
The testcase is hand-written from what I see in
https://github.com/ruby/ruby/blob/a528908271c678360d2d8ca232c178e7cdd340b4/vsnprintf.c#L529
https://github.com/ruby/ruby/blob/a528908271c678360d2d8ca232c178e7cdd340b4/vsnprintf.c#L1229
https://github.com/ruby/ruby/blob/a528908271c678360d2d8ca232c178e7cdd340b4/missing/dtoa.c#L3387
where hdtoa is inlined into cvt which is inlined into vfprintf. This reduced
testcase reproduces on x86_64-linux too.
^ permalink raw reply [flat|nested] 10+ messages in thread
* [Bug tree-optimization/108540] [13 Regression] Frange miscompilation of ruby since r13-3261
2023-01-25 15:48 [Bug tree-optimization/108540] New: [13 Regression] Frange miscompilation of ruby since r13-3261 jakub at gcc dot gnu.org
2023-01-25 15:52 ` [Bug tree-optimization/108540] " jakub at gcc dot gnu.org
@ 2023-01-26 11:27 ` jakub at gcc dot gnu.org
2023-01-26 11:41 ` jakub at gcc dot gnu.org
` (6 subsequent siblings)
8 siblings, 0 replies; 10+ messages in thread
From: jakub at gcc dot gnu.org @ 2023-01-26 11:27 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108540
--- Comment #2 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
This goes wrong during thread1 pass I think.
Before that we have in the IL early exits for x != 42, d NAN or d +-INF, and
then:
<bb 6> [local count: 96926676]:
if (d_16(D) == 0.0)
goto <bb 7>; [50.00%]
else
goto <bb 8>; [50.00%]
<bb 7> [local count: 48463338]:
_2 = __builtin_signbit (d_16(D));
if (_2 != 0)
goto <bb 9>; [50.00%]
else
goto <bb 8>; [50.00%]
<bb 8> [local count: 72695007]:
<bb 9> [local count: 164282501]:
# RANGE [frange] double [-0.0 (-0x0.0p+0),
1.79769313486231570814527423731704356798070567525844996599e+308
(0x0.fffffffffffff8p+1024)]
# d_7 = PHI <d_17(5), -0.0(7), d_16(D)(8)>
# RANGE [irange] char [0, 0][45, 45] NONZERO 0x2d
# sign_10 = PHI <45(5), 45(7), 0(8)>
_3 = ch_18(D) == 97;
_4 = ch_18(D) == 65;
_5 = _3 | _4;
if (_5 != 0)
goto <bb 10>; [50.00%]
else
goto <bb 13>; [50.00%]
<bb 10> [local count: 82141250]:
_13 = VIEW_CONVERT_EXPR<long long int>(d_7);
_24 = _13 < 0;
# RANGE [irange] int [0, 1] NONZERO 0x1
_25 = (int) _24;
if (d_7 == 0.0)
goto <bb 12>; [50.00%]
else
goto <bb 11>; [50.00%]
<bb 11> [local count: 41070625]:
<bb 12> [local count: 82141250]:
# PT =
# cp_8 = PHI <"WRONG"(11), "ZERO"(10)>
(#c1 testcase at -O2 on x86_64-linux in sra dump). The path through the IL on
arguments the function is called with is
d_16(D) == 0.0, __builtin_signbit (d_16(D)) is non-zero and so d_7 is -0.0,
sign_10 45, then _5 is non-zero, d_7 == 0.0 is
again true and so cp_8 is "ZERO".
But in thread1 this changes:
<bb 6> [local count: 96926676]:
if (d_16(D) == 0.0)
goto <bb 7>; [50.00%]
else
goto <bb 10>; [50.00%]
<bb 7> [local count: 48463338]:
_2 = __builtin_signbit (d_16(D));
if (_2 != 0)
goto <bb 8>; [50.00%]
else
goto <bb 10>; [50.00%]
<bb 8> [local count: 24231669]:
# RANGE [frange] double [-0.0 (-0x0.0p+0),
1.79769313486231570814527423731704356798070567525844996599e+308
(0x0.fffffffffffff8p+1024)]
# d_11 = PHI <-0.0(7)>
# RANGE [irange] char [0, 0][45, 45] NONZERO 0x2d
# sign_26 = PHI <45(7)>
_27 = ch_18(D) == 97;
_28 = ch_18(D) == 65;
_29 = _27 | _28;
if (_29 != 0)
goto <bb 9>; [50.00%]
else
goto <bb 14>; [50.00%]
<bb 9> [local count: 12115835]:
_30 = VIEW_CONVERT_EXPR<long long int>(d_11);
_31 = _30 < 0;
# RANGE [irange] int [0, 1] NONZERO 0x1
_32 = (int) _31;
goto <bb 12>; [100.00%]
...
<bb 12> [local count: 41070625]:
# RANGE [irange] char [0, 0][45, 45] NONZERO 0x2d
# sign_33 = PHI <sign_10(11), sign_26(9)>
# RANGE [irange] int [0, 1] NONZERO 0x1
# _35 = PHI <_25(11), _32(9)>
<bb 13> [local count: 82141250]:
# PT =
# cp_8 = PHI <"WRONG"(12), "ZERO"(11)>
Now the path through for the arguments is again d_16(D) == 0.0, signbit
non-zero, d_11 is correctly -0.0 but this is in a threaded block, _29 is
non-zero, but we come into bb 13 from bb 12 and so cp_8 is "WRONG" rather than
"ZERO".
Aldy, can you please have a look?
^ permalink raw reply [flat|nested] 10+ messages in thread
* [Bug tree-optimization/108540] [13 Regression] Frange miscompilation of ruby since r13-3261
2023-01-25 15:48 [Bug tree-optimization/108540] New: [13 Regression] Frange miscompilation of ruby since r13-3261 jakub at gcc dot gnu.org
2023-01-25 15:52 ` [Bug tree-optimization/108540] " jakub at gcc dot gnu.org
2023-01-26 11:27 ` jakub at gcc dot gnu.org
@ 2023-01-26 11:41 ` jakub at gcc dot gnu.org
2023-01-26 12:16 ` jakub at gcc dot gnu.org
` (5 subsequent siblings)
8 siblings, 0 replies; 10+ messages in thread
From: jakub at gcc dot gnu.org @ 2023-01-26 11:41 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108540
--- Comment #3 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
I think
int
foo (int x, double d)
{
if (x == 42)
d = -0.0;
if (d == 0.0)
return 42;
return 12;
}
behaves similarly with threading. The above function is basically return (x ==
42 || d == 0.0) ? 42 : 12;
In forwprop1 at -O2 we still have correct:
<bb 2> :
if (x_3(D) == 42)
goto <bb 3>; [INV]
else
goto <bb 4>; [INV]
<bb 3> :
<bb 4> :
# d_1 = PHI <d_4(D)(2), -0.0(3)>
if (d_1 == 0.0)
goto <bb 5>; [INV]
else
goto <bb 6>; [INV]
<bb 5> :
// predicted unlikely by early return (on trees) predictor.
<bb 6> :
# RANGE [irange] int [-INF, +INF] NONZERO 0x2e
# _2 = PHI <42(5), 12(4)>
but then comes ethread and turns that into:
<bb 2> :
if (x_3(D) == 42)
goto <bb 3>; [INV]
else
goto <bb 4>; [INV]
<bb 3> :
# d_5 = PHI <-0.0(2)>
goto <bb 6>; [100.00%]
<bb 4> :
# d_1 = PHI <d_4(D)(2)>
if (d_1 == 0.0)
goto <bb 5>; [INV]
else
goto <bb 6>; [INV]
<bb 5> :
// predicted unlikely by early return (on trees) predictor.
<bb 6> :
# RANGE [irange] int [-INF, +INF] NONZERO 0x2e
# _2 = PHI <42(5), 12(4), 12(3)>
as if -0.0 == 0.0 was false rather than true.
^ permalink raw reply [flat|nested] 10+ messages in thread
* [Bug tree-optimization/108540] [13 Regression] Frange miscompilation of ruby since r13-3261
2023-01-25 15:48 [Bug tree-optimization/108540] New: [13 Regression] Frange miscompilation of ruby since r13-3261 jakub at gcc dot gnu.org
` (2 preceding siblings ...)
2023-01-26 11:41 ` jakub at gcc dot gnu.org
@ 2023-01-26 12:16 ` jakub at gcc dot gnu.org
2023-01-26 12:37 ` jakub at gcc dot gnu.org
` (4 subsequent siblings)
8 siblings, 0 replies; 10+ messages in thread
From: jakub at gcc dot gnu.org @ 2023-01-26 12:16 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108540
--- Comment #4 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
Ah, so back_threader::find_taken_edge_cond calls
path_range_query::range_of_stmt
on the d_1 == 0.0 with the assumption that d_1 is -0.0,
fold_using_range::range_of_range_op sees
(gdb) p debug (range1)
[frange] double [-0.0 (-0x0.0p+0), -0.0 (-0x0.0p+0)]
(gdb) p debug (range2)
[frange] double [0.0 (0x0.0p+0), 0.0 (0x0.0p+0)]
(that is correct) and foperator_equal::fold_range is called on those.
There we trigger the
604 // We can be sure the values are always equal or not if both ranges
605 // consist of a single value, and then compare them.
606 else if (op1.singleton_p () && op2.singleton_p ())
607 {
608 if (op1 == op2)
609 r = range_true (type);
610 else
611 r = range_false (type);
612 }
code, which is clearly wrong if both ops are singleton zeros with different
sign.
^ permalink raw reply [flat|nested] 10+ messages in thread
* [Bug tree-optimization/108540] [13 Regression] Frange miscompilation of ruby since r13-3261
2023-01-25 15:48 [Bug tree-optimization/108540] New: [13 Regression] Frange miscompilation of ruby since r13-3261 jakub at gcc dot gnu.org
` (3 preceding siblings ...)
2023-01-26 12:16 ` jakub at gcc dot gnu.org
@ 2023-01-26 12:37 ` jakub at gcc dot gnu.org
2023-01-26 13:08 ` jakub at gcc dot gnu.org
` (3 subsequent siblings)
8 siblings, 0 replies; 10+ messages in thread
From: jakub at gcc dot gnu.org @ 2023-01-26 12:37 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108540
--- Comment #5 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
--- gcc/range-op-float.cc.jj 2023-01-16 09:39:36.191929750 +0100
+++ gcc/range-op-float.cc 2023-01-26 13:33:48.712018907 +0100
@@ -607,6 +607,10 @@ foperator_equal::fold_range (irange &r,
{
if (op1 == op2)
r = range_true (type);
+ // If one operand is -0.0 and other 0.0, they are still equal.
+ else if (real_iszero (&op1.lower_bound ())
+ && real_iszero (&op2.lower_bound ()))
+ r = range_true (type);
else
r = range_false (type);
}
@@ -617,7 +621,18 @@ foperator_equal::fold_range (irange &r,
frange tmp = op1;
tmp.intersect (op2);
if (tmp.undefined_p ())
- r = range_false (type);
+ {
+ // If one range is [whatever, -0.0] and another
+ // [0.0, whatever2], we don't know anything either,
+ // because -0.0 == 0.0.
+ if ((real_iszero (&op1.upper_bound ())
+ && real_iszero (&op2.lower_bound ()))
+ || (real_iszero (&op1.lower_bound ())
+ && real_iszero (&op2.upper_bound ())))
+ r = range_true_and_false (type);
+ else
+ r = range_false (type);
+ }
else
r = range_true_and_false (type);
}
fixes both testcases, but I'm afraid I need to look at other relations too with
-0.0 == 0.0 in mind.
^ permalink raw reply [flat|nested] 10+ messages in thread
* [Bug tree-optimization/108540] [13 Regression] Frange miscompilation of ruby since r13-3261
2023-01-25 15:48 [Bug tree-optimization/108540] New: [13 Regression] Frange miscompilation of ruby since r13-3261 jakub at gcc dot gnu.org
` (4 preceding siblings ...)
2023-01-26 12:37 ` jakub at gcc dot gnu.org
@ 2023-01-26 13:08 ` jakub at gcc dot gnu.org
2023-01-26 13:29 ` aldyh at gcc dot gnu.org
` (2 subsequent siblings)
8 siblings, 0 replies; 10+ messages in thread
From: jakub at gcc dot gnu.org @ 2023-01-26 13:08 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108540
Jakub Jelinek <jakub at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|NEW |ASSIGNED
Assignee|unassigned at gcc dot gnu.org |jakub at gcc dot gnu.org
--- Comment #6 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
Created attachment 54351
--> https://gcc.gnu.org/bugzilla/attachment.cgi?id=54351&action=edit
gcc13-pr108540.patch
Untested fix.
^ permalink raw reply [flat|nested] 10+ messages in thread
* [Bug tree-optimization/108540] [13 Regression] Frange miscompilation of ruby since r13-3261
2023-01-25 15:48 [Bug tree-optimization/108540] New: [13 Regression] Frange miscompilation of ruby since r13-3261 jakub at gcc dot gnu.org
` (5 preceding siblings ...)
2023-01-26 13:08 ` jakub at gcc dot gnu.org
@ 2023-01-26 13:29 ` aldyh at gcc dot gnu.org
2023-01-26 16:28 ` cvs-commit at gcc dot gnu.org
2023-01-27 20:39 ` jakub at gcc dot gnu.org
8 siblings, 0 replies; 10+ messages in thread
From: aldyh at gcc dot gnu.org @ 2023-01-26 13:29 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108540
--- Comment #7 from Aldy Hernandez <aldyh at gcc dot gnu.org> ---
(In reply to Jakub Jelinek from comment #6)
> Created attachment 54351 [details]
> gcc13-pr108540.patch
>
> Untested fix.
LGTM. Thanks for looking at this.
^ permalink raw reply [flat|nested] 10+ messages in thread
* [Bug tree-optimization/108540] [13 Regression] Frange miscompilation of ruby since r13-3261
2023-01-25 15:48 [Bug tree-optimization/108540] New: [13 Regression] Frange miscompilation of ruby since r13-3261 jakub at gcc dot gnu.org
` (6 preceding siblings ...)
2023-01-26 13:29 ` aldyh at gcc dot gnu.org
@ 2023-01-26 16:28 ` cvs-commit at gcc dot gnu.org
2023-01-27 20:39 ` jakub at gcc dot gnu.org
8 siblings, 0 replies; 10+ messages in thread
From: cvs-commit at gcc dot gnu.org @ 2023-01-26 16:28 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108540
--- Comment #8 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Jakub Jelinek <jakub@gcc.gnu.org>:
https://gcc.gnu.org/g:09176201ec6a21c25b1edb07f19f83be22a123f9
commit r13-5397-g09176201ec6a21c25b1edb07f19f83be22a123f9
Author: Jakub Jelinek <jakub@redhat.com>
Date: Thu Jan 26 17:21:22 2023 +0100
frange: Fix up foperator_{,not_}equal::fold_range for signed zeros
[PR108540]
The following testcases are miscompiled, because threader sees some
SSA_NAME would have -0.0 value and when computing range of SSA_NAME == 0.0
foperator_equal::fold_range sees one operand has [-0.0, -0.0] singleton
range, the other [0.0, 0.0], they aren't equal (frange operator== uses
real_identical etc. rather than real comparisons) and so it thinks they
compare unequal. With signed zeros -0.0 == 0.0 is true though, so we
need to special case the both ranges singleton code.
Similarly, if we see op1 range being say [-42.0, -0.0] and op2 range
[0.0, 42.0], we'd check that the intersection of the two ranges is empty
(that is correct) and fold the result of == between such operands to
[0, 0] which is wrong, because -0.0 == 0.0, it needs to be [0, 1].
Similarly for foperator_not_equal::fold_range.
2023-01-26 Jakub Jelinek <jakub@redhat.com>
PR tree-optimization/108540
* range-op-float.cc (foperator_equal::fold_range): If both op1 and
op2
are singletons, use range_true even if op1 != op2
when one range is [-0.0, -0.0] and another [0.0, 0.0]. Similarly,
even if intersection of the ranges is empty and one has
zero low bound and another zero high bound, use
range_true_and_false
rather than range_false.
(foperator_not_equal::fold_range): If both op1 and op2
are singletons, use range_false even if op1 != op2
when one range is [-0.0, -0.0] and another [0.0, 0.0]. Similarly,
even if intersection of the ranges is empty and one has
zero low bound and another zero high bound, use
range_true_and_false
rather than range_true.
* gcc.c-torture/execute/ieee/pr108540-1.c: New test.
* gcc.c-torture/execute/ieee/pr108540-2.c: New test.
^ permalink raw reply [flat|nested] 10+ messages in thread
* [Bug tree-optimization/108540] [13 Regression] Frange miscompilation of ruby since r13-3261
2023-01-25 15:48 [Bug tree-optimization/108540] New: [13 Regression] Frange miscompilation of ruby since r13-3261 jakub at gcc dot gnu.org
` (7 preceding siblings ...)
2023-01-26 16:28 ` cvs-commit at gcc dot gnu.org
@ 2023-01-27 20:39 ` jakub at gcc dot gnu.org
8 siblings, 0 replies; 10+ messages in thread
From: jakub at gcc dot gnu.org @ 2023-01-27 20:39 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108540
Jakub Jelinek <jakub at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|ASSIGNED |RESOLVED
Resolution|--- |FIXED
--- Comment #9 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
Fixed.
^ permalink raw reply [flat|nested] 10+ messages in thread
end of thread, other threads:[~2023-01-27 20:39 UTC | newest]
Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-01-25 15:48 [Bug tree-optimization/108540] New: [13 Regression] Frange miscompilation of ruby since r13-3261 jakub at gcc dot gnu.org
2023-01-25 15:52 ` [Bug tree-optimization/108540] " jakub at gcc dot gnu.org
2023-01-26 11:27 ` jakub at gcc dot gnu.org
2023-01-26 11:41 ` jakub at gcc dot gnu.org
2023-01-26 12:16 ` jakub at gcc dot gnu.org
2023-01-26 12:37 ` jakub at gcc dot gnu.org
2023-01-26 13:08 ` jakub at gcc dot gnu.org
2023-01-26 13:29 ` aldyh at gcc dot gnu.org
2023-01-26 16:28 ` cvs-commit at gcc dot gnu.org
2023-01-27 20:39 ` jakub at gcc dot gnu.org
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).