> Yes, but even bitsizetype is undistinguishable from other (usually 2 *
> pointer size) precision integral types.
OK, I can propose the attached patch. The typed_binop_from_tree computation
works on my Ada testcase in 32-bit mode from within GDB, but not in 64-bit
mode because GDB chokes
k;
This also looks incorrect if the size is larger than DWARF2_ADDR_SIZE then,
isn't there a typo in the code?
if (GET_MODE_SIZE (int_mode) < DWARF2_ADDR_SIZE)
{
op = DW_OP_div;
goto do_binop;
}
--
Eric Botcazou
on x86-64/Linux, both GCC and GDB, OK for the mainline?
2021-04-26 Eric Botcazou
* dwarf2out.c (scompare_loc_descriptor): Fix head comment.
(is_handled_procedure_type): Likewise.
(struct loc_descr_context): Add strict_signedness field.
(resolve_args_picking_1
for sizetype or bitsizetype quantities so that's unnecessarily cautious.
Tested on x86-64/Linux, both GCC and GDB, OK for the mainline?
2021-04-26 Eric Botcazou
* dwarf2out.c (loc_list_from_tree_1) : Do not bail out
for sizetype and bitsizetype.
--
Eric Botcazoudiff --git a/gcc
s fancy C++ features avoided.
--
Eric Botcazou
> This patch broke bootstrap on AIX.
>
> std::thread is not provided in all instances. GCC is not compiled
> multi-threaded by default.
Right, this will very likely break on Windows too.
--
Eric Botcazou
Hi,
I'd like to apply the attached stopgap fix for PR ada/99360 on the 11 branch,
as the real fix is really stage #1 material. This is a regression there.
Bootstrapped/regtested on x86-64/Linux, OK for the 11 branch?
2021-04-20 Eric Botcazou
Bob Duff
PR ada/99360
BM, like
other corporations, has made significant technical contributions to GCC over
the years, for example the scheduler and the vectorizer, and thus has assigned
the copyright of these contributions to the FSF.
--
Eric Botcazou
gigantic frames, like e.g. in the
attached Ada testcase.
Bootstrapped on x86-64/Windows, applied on all active branches as obvious.
2021-04-19 Eric Botcazou
* config/i386/winnt.c (i386_pe_seh_cold_init): Properly deal with
frames larger than the SEH maximum frame size
h this? It adds -latomic and the appropriate -L
> options to tests that use { dg-add-options libatomic }, because
> sparcv8 needs libatomic for some std::atomic ops.
Sure, thanks.
--
Eric Botcazou
10 and 9 branches.
2021-04-13 Eric Botcazou
* gcc-interface/misc.c (gnat_init): Set default range bits to 0.
* gcc-interface/trans.c (extract_encoding): Delete.
(decode_name): Likewise.
(File_Name_to_gnu): New function.
(gigi): Call it to translate f
This is a regression in Ada on the mainline, 10 and 9 branches:
https://gcc.gnu.org/pipermail/gcc-patches/2021-March/567143.html
Thanks in advance.
--
Eric Botcazou
subtype and
defines a set of explicit constants, which used to be of this subtype but were
changed to the base type at some point. This reinstates the subtype for them.
Tested on x86-64/Linux, applied on the mainline.
2021-04-05 Eric Botcazou
* c-ada-spec.c (is_simple_enum): Minor
> Thanks, pushed.
I can confirm that the build failure we had is now gone, thanks!
> Eric, are you building the RC with --enable-maintainer-mode maybe? Or
> regenerating the autoconf files yourself?
The latter, we have local configure changes so we regenerate the script.
--
Eric Botcazou
> I have so far bootstrapped and tested the release candidate on
> x86_64-linux. Please test it and report any issues to bugzilla.
It does not build for Windows:
https://gcc.gnu.org/pipermail/gcc-patches/2021-April/567582.html
--
Eric Botcazou
ilds are now broken on the branch.
--
Eric Botcazou
t so that maintainers
could add the missing bits; this worked relatively well.
--
Eric Botcazou
mented the
SPARC support only because I had ran into the failures in the testsuite). So
doing the inverse filtering sounds quite counterproductive to me and IMO it's
up to the architecture maintainers to decide on a case-by-case basis.
--
Eric Botcazou
This is a regression present on the mainline: the compiler fails to assign an
aggregate to a full-access component (i.e. Atomic or VFA) as a whole if the
type of the component is not full access itself.
Tested on x86-64/Linux, applied on the mainline.
2021-03-29 Eric Botcazou
PR
for instructions.
The attached fix simply deletes IS_MACRO_LOC and replaces it with the proper
test, taking into account that IS_ADHOC_LOC has always already been tested.
Tested on x86-64/Linux, OK for mainline, 10 and 9 branches?
2021-03-23 Eric Botcazou
libcpp/
* include/line-ma
Since they are already skipped on other 32-bit architectures.
Tested on x86-64/Linux and SPARC/Solaris, OK for the mainline?
2021-03-23 Eric Botcazou
* go.test/test/fixedbugs/issue6036.go: Skip on sparc.
* go.test/test/fixedbugs/issue22200b.go: Likewise.
--
Eric
> Can you use wide_ints instead of building trees here please?
Note that this will reject array types whose lower bound is not fixed, but the
wide_int version is attached.
PR middle-end/99641
* fold-const.c (native_encode_initializer) : For an
array type, do the
bound; the computation must be done in sizetype instead so that
it may wrap around, like in get_inner_reference or get_ref_base_and_extent.
Tested on x86-64/Linux, OK for the mainline and 10 branch?
2021-03-18 Eric Botcazou
PR middle-end/99641
* fold-const.c
in 64-bit
mode and, as a result renames the w constraint into W.
Bootstrapped/regtested on SPARC/Solaris and SPARC64/Linux, applied on the
mainline.
2021-03-12 Eric Botcazou
PR target/99422
* config/sparc/constraints.md (w): Rename to...
(W): ... this and ditch
o if I still need gnat-10 when glibc 2.34 is in use. Otoh, the patch
> could be conditional on the glibc version detected.
Too much hassle. Please pester the glibc folks if you have any complaint.
--
Eric Botcazou
This is a strange regression present on the mainline and 10 branch, whereby an
enumeration type declared as atomic (or volatile) incorrectly triggers the ODR
machinery for its values in LTO mode.
Tested on x86-64/Linux, applied on the mainline and 10 branch.
2021-03-10 Eric Botcazou
-10 Eric Botcazou
* config/sparc/sparc.c (sparc_regmode_natural_size): Return 4 for
float and vector integer modes only if the mode is not larger.
--
Eric Botcazoudiff --git a/gcc/config/sparc/sparc.c b/gcc/config/sparc/sparc.c
index f3557936114..f1504172022 100644
--- a/gcc
);
> fn = gfc_builtin_decl_for_float_kind (BUILT_IN_ROUND, kind);
> }
> else
Yes, it works fine on x86-64/Linux and SPARC64/Linux, applied, thanks.
--
Eric Botcazou
> We should still test that we get the warning if the target doesn't have
> the attribute. I'll fix the test, thanks.
You probably need to do the same on the 10 branch since it fails there too.
--
Eric Botcazou
force SRA
to trigger on Aarch64 (like PowerPC) for gnat.dg/opt39.adb.
Tested on the affected platforms, applied on the mainline as obvious.
2021-03-09 Eric Botcazou
* gcc.dg/array-quals-1.c: Pass -fno-pie if supported.
* gfortran.dg/pr95690.f90: Replace *-*-solaris* with sparc
red about the
issue for months, so please let's not the best be the enemy of the good...
--
Eric Botcazou
> This one worked. Is that what you had in mind?
>
> * raise-gcc.c: On Cygwin include mingw32.h to prevent
> windows.h from including x86intrin.h or emmintrin.h.
Yep, exactly, thanks, you may put it on whichever branch you need.
--
Eric Botcazou
Hi,
AFAICS the code in build_round_expr implicitly assumes that __float128 exists,
which is *not* the common case among 64-bit architectures since "long double"
is generally already 128-bit for them.
Tested on x86-64/Linux and SPARC64/Linux, OK for the mainline?
2021-03-08 Eri
is a register.
Bootstrapped/regtested on x86-64/Linux, PowerPC64/Linux and SPARC/Solaris,
OK for the mainline and 10 branch?
2021-03-08 Eric Botcazou
PR C++/90448
* calls.c (initialize_argument_information): When the argument
is passed by reference, do not make a copy
ot;mingw32.h"
#endif
at the appropriate spot in raise-gcc.c instead?
--
Eric Botcazou
> GCC 9 doesn't have the "c++20" target yet.
>
> * g++.dg/cpp2a/nontype-class-defarg1.C: Use target c++2a.
Thanks!
--
Eric Botcazou
or " dg-do 2 compile { target c++20 } "
ERROR: g++.dg/cpp2a/nontype-class-defarg1.C -std=c++17: syntax error in
target selector "target c++20" for " dg-do 2 compile { target c++20 } "
On the contrary, the 10 branch is a in good shape.
--
Eric Botcazou
This fixes the build breakage introduced by the latest glibc release.
Tested on x86-64/Linux, applied on mainline, 10 and 9 branches.
2021-03-05 Eric Botcazou
PR ada/99264
* init.c (__gnat_alternate_sta) [Linux]: Remove preprocessor test on
MINSIGSTKSZ and bump size
Hi,
this is an undefined behavior spotted by the sanitizer that has managed to go
unnoticed until now. Tested on x86-64/Linux, OK for the mainline?
2021-03-04 Eric Botcazou
PR rtl-optimization/99376
* rtlanal.c (nonzero_bits1) : If the number
of low-order zero bits
ease branches do not have -Werror set, do they?
--
Eric Botcazou
0/9 branches as obvious.
2021-03-03 Eric Botcazou
PR target/99234
* config/i386/i386.c (ix86_compute_frame_layout): For a SEH target,
point back the hard frame pointer to its default location when the
frame is larger than SEH_MAX_FRAME_SIZE.
--
Eric Botcazoudiff --
This is a regression present on the mainline and 10 branch, where we fail
to make the bounds explicit for the return value of a function returning
an unconstrained array of a limited record type.
Tested on x86-64/Linux, applied on mainline and 10 branch.
2021-03-02 Eric Botcazou
PR
H whatever the
frame size. And it avoids a weird discrepancy between cases where the number
of saved general regs is even and cases where it is odd.
Tested on x86_64-w64-mingw32, OK for mainline, 10 and 9 branches?
2021-02-26 Eric Botcazou
PR target/99264
* config/i
100644
> --- a/gcc/config/sparc/sparc.c
> +++ b/gcc/config/sparc/sparc.c
> @@ -10962,6 +10962,9 @@ sparc_init_builtins (void)
>
>if (TARGET_VIS)
> sparc_vis_init_builtins ();
> +#ifdef SUBTARGET_INIT_BUILTINS
> + SUBTARGET_INIT_BUILTINS;
> +#endif
> }
Missing blank line before the change.
--
Eric Botcazou
The existing cast to float gives weird results in the RTL dump files on x86
when the compiler is configured --with-fpmath=sse.
Bootstrapped on x86/Linux, applied on the mainline as obvious.
2021-02-15 Eric Botcazou
* df-core.c (df_worklist_dataflow_doublequeue): Use proper cast
-functioning Ada compiler when you
do a profiled bootstrap.
Bootstrapped on x86-64/Windows, applied on all active branches as obvious.
2021-02-11 Eric Botcazou
* config/i386/winnt.c (i386_pe_seh_unwind_emit): When switching to
the cold section, emit a nop before the directive
branch.
2021-02-09 Eric Botcazou
PR rtl-optimization/96015
* reorg.c (skip_consecutive_labels): Minor comment tweaks.
(relax_delay_slots): When deleting a jump to the next active
instruction over a barrier, first delete the barrier if the
jump is the only
It is present on the mainline, 10 and 9 branches, and can yield an incorrect
layout when there is a partial representation clause on a discriminated record
type with a variant part.
Tested on x86-64/Linux, applied on mainline, 10 and 9 branches.
2021-02-03 Eric Botcazou
* gcc
This polishes a few rough edges visible in LTO mode.
Tested on x86-64/Linux, applied on mainline, 10 and 9 branches.
2021-02-03 Eric Botcazou
* gcc-interface/decl.c (gnat_to_gnu_entity) : Make the
two fields of the fat pointer type addressable, and do not make
> But next time we use SIZE_MAX somewhere it is going to break again this way.
> If we just define SIZE_MAX if not defined after all includes in system.h, I
> think it is better than this.
The existing practice seems to define the missing constants right after the
corresponding include, e.g.
> Whatever works, I can't test such patches except on Linux, so can you just
> create a patch and test it on Solaris where it failed before?
Maybe a safer fix is the attached one. Tested on old RedHat and SuSE distros.
* fold-const-call.c: Define __STDC_LIMIT_MACROS at the top.
--
> Whatever works, I can't test such patches except on Linux, so can you just
> create a patch and test it on Solaris where it failed before?
It fails on old Linux distros, e.g. RHES 5, not on Solaris as far as I know.
--
Eric Botcazou
> Note, it now affects GCC 10 branch too.
Yep, that's where it breaks things for us. :-)
--
Eric Botcazou
> Why not just:
>
> #ifndef SIZE_MAX
> # define SIZE_MAX INTTYPE_MAXIMUM (size_t)
> #endif
>
> just below UCHAR_MAX in system.h?
Or rather just below
#ifdef HAVE_STDINT_H
#include
#endif
#ifdef HAVE_INTTYPES_H
#include
#endif
--
Eric Botcazou
t;
> * fold-const-call.c (fold_const_call): Use INTTYPE_MAXIMUM (size_t)
> instead of SIZE_MAX.
Why not just:
#ifndef SIZE_MAX
# define SIZE_MAX INTTYPE_MAXIMUM (size_t)
#endif
just below UCHAR_MAX in system.h?
--
Eric Botcazou
return build_int_cst (type, strncmp (p0, p1, MIN (s2, SIZE_MAX)));
because /usr/include/stdint.h has:
/* The ISO C99 standard specifies that in C++ implementations these
macros should only be defined if explicitly requested. */
#if !defined __cplusplus || defined __STDC_LIMIT_MACROS
--
Eric Botcazou
https://cfarm.tetaneutral.net/machines/list/
--
Eric Botcazou
> Bootstrapped/regtested on
> * x86_64-pc-linux-gnu
> * powerpc64le-unknown-linux-gnu
> * aarch64-linux-gnu
> ok for trunk?
None of them is strict alignment though, isn't it?
--
Eric Botcazou
and others don't.
Bootstrapped in LTO mode on Windows, OK for all active branches?
2021-01-28 Eric Botcazou
contrib/
PR lto/85574
* compare-lto: Deal with PE-COFF executables specifically.
--
Eric Botcazoudiff --git a/contrib/compare-lto b/contrib/compare-lto
index 17379e196a7
.
2021-01-26 Eric Botcazou
Marius Hillenbrand
PR ada/98228
* gcc-interface/utils.c (maybe_pad_type): Test the size of the new
packable type instead of its alignment for addressability's sake.
--
Eric Botcazoudiff --git a/gcc/ada/gcc-interface/utils.c b/gcc/ada
This is a regression present on the mainline, 10 and 9 branches, in the form
of an internal error when a covariant-only thunk is inlined into its caller.
Tested on x86-64/Linux, applied on the mainline, 10 and 9 branches.
2021-01-25 Eric Botcazou
* gcc-interface/trans.c
> * config/sparch/rtemself.h (TARGET_OS_CPP_BUILTINS): Add built-in define
> __FIX_LEON3FT_TN0018.
OK for whichever branch(es) you deem appropriate.
--
Eric Botcazou
It's a long-standing GENERIC tree sharing issue.
Tested on x86_64-suse-linux, applied on the mainline, 10 and 9 branches.
2021-01-19 Eric Botcazou
PR ada/98740
* gcc-interface/trans.c (add_decl_expr): Always mark TYPE_ADA_SIZE.
--
Eric Botcazoudiff --git a/gcc/ada/gcc
ported by this target
>
> Fixed as follows.
>
> Tested on i386-pc-solaris2.11 and x86_64-pc-linux-gnu. Installed on
> master.
Backported into 10 branch as obvious.
--
Eric Botcazou
Unlike the other global variables, it is not reset at the beginning of a
function so can leak into the next one.
Tested on x86-64/Linux, applied on the mainline as obvious.
2021-01-15 Eric Botcazou
* final.c (final_start_function_1): Reset force_source_line.
--
Eric Botcazoudiff
debug info, therefore
> the patch is a bit awkward.
Please run the GDB testsuite with Ada support on the patch.
--
Eric Botcazou
The underlying bug was fixed by Marc in July 2019:
2019-07-10 Marc Glisse
* wide-int.h (wi::lshift): Reject negative values for the fastpath.
and Richard B. agreed to the backport onto the 9 branch.
Bootstrapped/regtested and applied on the 9 branch.
2021-01-06 Eric Botcazou
ype of case label values,
and MINVAL and RANGE are derived from those values).
so PR tree-optimization/98272 exhibits a precision mismatch now.
Bootstrapped/regtested on x86-64/Linux, OK for the mainline?
2020-12-15 Eric Botcazou
PR tree-optimization/98272
* tree-swi
d two different packages for the system compiler?
--
Eric Botcazou
E distro releases defaulted to -m32.
> Newer ppc64 BE distro releases now default to -m64.
No problem with that, as long as the default is clearly set.
--
Eric Botcazou
base
type of argument to obtain static bound and required size.
2020-12-10 Eric Botcazou
* gnat.dg/modular6.adb: New test.
--
Eric Botcazoudiff --git a/gcc/ada/exp_attr.adb b/gcc/ada/exp_attr.adb
index 251fa1449c4..b21592c78b2 100644
--- a/gcc/ada/exp_attr.adb
+++ b/gcc/ada
> 2020-12-10 Jakub Jelinek
>
> PR rtl-optimization/98212
> * dojump.c (do_compare_rtx_and_jump): Change computation of
> first_prob for and_them. Add comment explaining and_them case.
>
> * gcc.dg/predict-8.c: Adjust expected probability.
ponent, so the code needs to
be able to deal with this nested type.
Tested on x86-64/Linux, applied on the mainline as obvious.
2020-12-10 Eric Botcazou
* dwarf2out.c (loc_list_from_tree_1) : Deal with
a nested context type
--
Eric Botcazoudiff --git a/gcc/dwarf2out.c b/gcc/d
prob.split (cprob.invert ()).invert ();
> + prob = prob.invert ();
> /* If we only jump if true, just bypass the second
jump. */
> if (! if_false_label)
> {
OK, thanks, but aren't there missing TABs in the new version? Only one line
is changed in the end AFAICS.
--
Eric Botcazou
t
> + remains the same and first_prob is prob * cprob. */
>else
> {
> profile_probability first_prob = prob.split (cprob);
prob.split adjusts prob so this needs to be reflected in the comment (maybe
"adjusted prob" or the formula if it is simple). Otherwise looks good to me.
--
Eric Botcazou
t; or by extending manually.
>
> * gcc.dg/pr98190.c: New test.
Yes, this looks good to me.
--
Eric Botcazou
/* If we only jump if true, just bypass the second
jump. */
> if (! if_false_label)
> {
The computation looks plausible, but you need to fix the comment too, it is
rather confusing as it seems to depict an OR-ELSE rather than an AND-THEN.
--
Eric Botcazou
* gcc.target/i386/pr98212.c: New test.
OK, thanks.
--
Eric Botcazou
tregion_end,
Are you sure that the optimization is worth the hassle (and maybe the risk,
i.e. can't store_field clobber the entire field)?
Any particular reason not to use the canonical idiom at the end, i.e. just
convert_move (SUBREG_REG (to_rtx), to_rtx1,
SUBREG_PROMOTED_SIGN (to_rtx));
--
Eric Botcazou
olean_type_node, 1));
Richard is correct, this is the RM maximum value, not the GCC maximum value.
All Ada integral types have maximum GCC bounds for their precision like in C.
--
Eric Botcazou
Hi,
the very recent addition of the if_to_switch pass has partially disabled the
optimization I added back in June:
2020-06-26 Eric Botcazou
* tree-ssa-reassoc.c (dump_range_entry): New function.
(debug_range_entry): New debug function.
(update_range_test): Invoke
, applied on the mainline, 10 and 9 branches.
2020-12-07 Eric Botcazou
* gcc-interface/trans.c (maybe_make_gnu_thunk): Return false if the
target is local and thunk and target do not have the same context.
--
Eric Botcazoudiff --git a/gcc/ada/gcc-interface/trans.c b/gcc/ada
Gigi uses a dummy global variable to register global types for debug info
purposes and its name can now collide with user variables.
Tested on x86-64/Linux, applied on the mainline and 10 branch.
2020-12-07 Eric Botcazou
* gcc-interface/trans.c (lvalue_for_aggregate_p): Also return
> 2020-11-11 Eric Botcazou
>
> * exp_dbug.adb (Is_Handled_Scale_Factor): Delete.
> (Get_Encoded_Name): Do not call it.
> * gcc-interface/decl.c (gnat_to_gnu_entity) :
> Tidy up and always use a meaningful description for arbitrary
> scale f
for this size,
and the size of the component given by the representation clause is lower than
the value of this bound rounded up to the alignment.
Tested on x86-64/Linux, applied on the mainline.
2020-12-07 Eric Botcazou
* gcc-interface/trans.c (Call_to_gnu): Also create a temporary
The new ranger exposed a problematic conversion to boolean type done in gigi.
Tested on x86-64/Linux, applied on the mainline.
2020-12-07 Eric Botcazou
* gcc-interface/utils.c (convert) : Call fold_convert
in the cases where convert_to_integer is not called.
: Call
> I noticed that as well.
OK, now corrected.
--
Eric Botcazou
> Now there are only AVR and CR16 that need to be converted. Great progress!
Indeed, but why does CR16 not have the 'c' letter then?
--
Eric Botcazou
> can someone explain to me why the -O2 optimizer is not able(allowed) to
> reduce this small sample the same way as clang/msvc?
Change the name of the function to something else than "main".
--
Eric Botcazou
> I think you need to add an effective-target check, because the new test
> fails on aarch64/arm:
Done.
--
Eric Botcazou
Ada testcase.
The attached fix relaxes the check, OK for mainline and 10 branch?
2020-12-03 Eric Botcazou
* ipa-sra.c (verify_access_tree_1): Relax assertion on the size.
2020-12-03 Eric Botcazou
* gnat.dg/opt91.ad[sb]: New test.
* gnat.dg/opt91_pkg.ad[sb]: New
both given the current setup, so you'll have to
make a choice for the powerpc64-suse-linux compiler.
--
Eric Botcazou
> This breaks build of libada, it is missing all of $(GNATRTL_128BIT_OBJS).
In the default multilib? Yes, that's the point, since it's 32-bit apparently.
--
Eric Botcazou
-03 Eric Botcazou
PR middle-end/98082
* function.c (use_register_for_decl): Also return true for a result
if cfun->tail_call_marked is true.
2020-12-03 Eric Botcazou
* g++.dg/cpp2a/pr98082.C: New test.
--
Eric Botcazoudiff --git a/gcc/function.c b/
Hi,
this replaces the ICE by a sorry message for the use of reverse scalar storage
order with a 128-bit decimal floating-point type on 32-bit platforms.
Tested on x86-64/Linux, OK for the mainline?
2020-12-03 Eric Botcazou
* expmed.c (flip_storage_order): In the case of a non
This upgrades the ACATS tesuite present in ada/acats from 2.5 to latest 2.6,
removing 3 tests and adding 11 tests, some of them written very recently.
Tested on x86-64/Linux, SPARC64/Linux, PowerPC64/Linux and SPARC/Solaris,
applied on the mainline.
2020-12-02 Eric Botcazou
.
2020-12-01 Eric Botcazou
* function.c (gen_call_used_regs_seq): In a function subject to the
leaf register optimization, skip registers that are not present.
* config/sparc/sparc.c (TARGET_ZERO_CALL_USED_REGS): Define to...
(sparc_zero_call_used_regs
This fixes an issue with nested structures and adds an Alignment clause to
counter the effect of the Pack aspect.
Tested on x86_64/Linux, applied on the mainline.
2020-11-28 Eric Botcazou
c-family/
* c-ada-spec.c (dump_nested_type) : Remove obsolete code.
(dump_ada_structure
and 9 branches.
2020-11-28 Eric Botcazou
PR target/97939
* config/sparc/predicates.md (arith_double_add_operand): Comment.
* config/sparc/sparc.md (uaddvdi4): Use arith_double_operand.
(addvdi4): Use arith_double_add_operand.
(addsi3): Remove useless
uence using a delay
slot of call instruction related to R_SPARC_TLS_GD_CALL relocation confuses
the linker and causes it to produce invalid code."
Tested on SPARC64/Linux and SPARC/Solaris, applied on the mainline (for now).
2020-11-26 Eric Botcazou
PR target/96607
* co
401 - 500 of 5463 matches
Mail list logo