https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61892
TC rs2740 at gmail dot com changed:
What|Removed |Added
CC||rs2740 at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=62110
TC rs2740 at gmail dot com changed:
What|Removed |Added
CC||rs2740 at gmail dot com
Severity: normal
Priority: P3
Component: c++
Assignee: unassigned at gcc dot gnu.org
Reporter: rs2740 at gmail dot com
Minimized repro:
struct foo {
templateclass T
operator const T () { static T t {}; return t;}
};
int main() {
int t((foo
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=60009
TC rs2740 at gmail dot com changed:
What|Removed |Added
CC||rs2740 at gmail dot com
Priority: P3
Component: c++
Assignee: unassigned at gcc dot gnu.org
Reporter: rs2740 at gmail dot com
GCC 4.9 added generic functions based on the draft Concepts Lite TS N3889.
(They now called abbreviated function templates.) However, the implementation
does not work
: normal
Priority: P3
Component: c++
Assignee: unassigned at gcc dot gnu.org
Reporter: rs2740 at gmail dot com
Repro:
class Bar{
public:
Bar(int, int, int);
};
int main () {
int x = 1;
Bar bar(int(x), int(x), int{x});
}
gcc HEAD 5.0.0 20150119
Priority: P3
Component: libstdc++
Assignee: unassigned at gcc dot gnu.org
Reporter: rs2740 at gmail dot com
The allocator-extended constructors of std::stack, std::queue and
std::priority_queue are missing.
: normal
Priority: P3
Component: libstdc++
Assignee: unassigned at gcc dot gnu.org
Reporter: rs2740 at gmail dot com
Repro:
#include array
int main(){
std::arrayint, 0 foo;
foo.begin(); // or end(), etc.
}
Output (http://coliru.stacked-crooked.com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=62116
TC rs2740 at gmail dot com changed:
What|Removed |Added
CC||rs2740 at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65352
--- Comment #3 from TC rs2740 at gmail dot com ---
Depends on how http://cplusplus.github.io/LWG/lwg-active.html#2443 comes out in
LEWG, it might be a good idea to go with a solution that maintains the
`constexpr`-ness so that it doesn't have
Priority: P3
Component: c++
Assignee: unassigned at gcc dot gnu.org
Reporter: rs2740 at gmail dot com
From http://stackoverflow.com/questions/29013260.
Minimized repro:
struct default_check
{
templatetypename U static int check(...);
};
struct is_addable
Priority: P3
Component: libstdc++
Assignee: unassigned at gcc dot gnu.org
Reporter: rs2740 at gmail dot com
Repro:
#include iostream
#include sstream
struct A{};
void operator(std::ostream , A const ){ }
void operator(std::istream , A ){ }
int main
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65543
--- Comment #1 from TC rs2740 at gmail dot com ---
(In reply to TC from comment #0)
which breaks if the operator called does not return a reference stream. A
similar issue affects operator for rvalue streams.
I meant a reference to the stream.
++
Assignee: unassigned at gcc dot gnu.org
Reporter: rs2740 at gmail dot com
From http://stackoverflow.com/q/29350040/2756719, repro:
#include random
int main(int, char **)
{
std::seed_seq seed1{1337, 42};
std::seed_seq seed2(seed1);
std::seed_seq seed3 = seed2;
return 0;
}
Per
Priority: P3
Component: c++
Assignee: unassigned at gcc dot gnu.org
Reporter: rs2740 at gmail dot com
Repro:
struct A {};
struct B : private A {};
struct C : public B {
struct A m_a; // error: A is the inaccessible injected-class-name
};
Per [basic.lookup.elab
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64865
TC rs2740 at gmail dot com changed:
What|Removed |Added
CC||rs2740 at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66109
TC rs2740 at gmail dot com changed:
What|Removed |Added
CC||rs2740 at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66350
TC rs2740 at gmail dot com changed:
What|Removed |Added
CC||rs2740 at gmail dot com
Priority: P3
Component: c++
Assignee: unassigned at gcc dot gnu.org
Reporter: rs2740 at gmail dot com
Target Milestone: ---
The following code is accepted by GCC 5.1 and 6.0.0 20150615 (experimental),
even though it is plainly invalid:
struct Meow {};
int
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66548
--- Comment #1 from TC rs2740 at gmail dot com ---
See also http://stackoverflow.com/q/30856911/2756719
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=54351
--- Comment #14 from TC rs2740 at gmail dot com ---
Well, I would have argued that if the specification doesn't say that a function
does X, then it doesn't do X. NullablePointer/CopyAssignable only means that
the assignment operation must
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=54351
TC rs2740 at gmail dot com changed:
What|Removed |Added
CC||rs2740 at gmail dot com
Severity: normal
Priority: P3
Component: c++
Assignee: unassigned at gcc dot gnu.org
Reporter: rs2740 at gmail dot com
Target Milestone: ---
Consider:
struct A {
A() = default;
A(const A) = delete;
A(A) = default;
};
A f() {
A a;
return true
Priority: P3
Component: c++
Assignee: unassigned at gcc dot gnu.org
Reporter: rs2740 at gmail dot com
Target Milestone: ---
Consider:
namespace A {
inline namespace B { templateclass struct C; }
templateclass struct C;
template struct Cint{};
}
Lookup
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66990
TC rs2740 at gmail dot com changed:
What|Removed |Added
Keywords||diagnostic
--- Comment #1
rmal
Priority: P3
Component: libstdc++
Assignee: unassigned at gcc dot gnu.org
Reporter: rs2740 at gmail dot com
Target Milestone: ---
Test case:
#include
struct C {
virtual ~C(){}
void operator&() const = delete;
};
int main() { std::rethrow_if_
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68288
TC changed:
What|Removed |Added
CC||rs2740 at gmail dot com
--- Comment #1 from TC
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68071
TC changed:
What|Removed |Added
CC||rs2740 at gmail dot com
--- Comment #1 from TC
: normal
Priority: P3
Component: c++
Assignee: unassigned at gcc dot gnu.org
Reporter: rs2740 at gmail dot com
Target Milestone: ---
Repro:
void swallow(...) {}
template
void foo() {
int t = 0;
swallow(
([]{return 0;}(), Is)...
);
}
int main
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63176
TC changed:
What|Removed |Added
CC||rs2740 at gmail dot com
--- Comment #3 from TC
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66624
TC changed:
What|Removed |Added
CC||rs2740 at gmail dot com
--- Comment #5 from TC
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=56701
TC changed:
What|Removed |Added
CC||rs2740 at gmail dot com
--- Comment #3 from TC
Version: 6.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: c++
Assignee: unassigned at gcc dot gnu.org
Reporter: rs2740 at gmail dot com
Target Milestone: ---
Repro:
template class Purr { };
template<template class,
Severity: normal
Priority: P3
Component: c++
Assignee: unassigned at gcc dot gnu.org
Reporter: rs2740 at gmail dot com
Target Milestone: ---
Per the resolution of CWG 616, given struct A { double x; };, decltype((A().x))
should be double&&.
libstdc++
Assignee: unassigned at gcc dot gnu.org
Reporter: rs2740 at gmail dot com
Target Milestone: ---
According to the standard ([map.modifiers]),
template pair<iterator, bool> insert(P&& x);
is equivalent to return emplace(std::forward(x)), provided that
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68869
--- Comment #3 from TC ---
This was http://cplusplus.github.io/LWG/lwg-defects.html#2005.
I don't think the S example breaks any rule in the pre-LWG2005 version, either.
That version requires that "P shall be convertible to value type", and
Priority: P3
Component: c++
Assignee: unassigned at gcc dot gnu.org
Reporter: rs2740 at gmail dot com
Target Milestone: ---
Repro:
#include
enum E : char { e };
void f(char) { puts(__PRETTY_FUNCTION__); }
void f(int) { puts(__PRETTY_FUNCTION__); }
int
Priority: P3
Component: c++
Assignee: unassigned at gcc dot gnu.org
Reporter: rs2740 at gmail dot com
Target Milestone: ---
From http://stackoverflow.com/q/34581372/2756719, repro:
struct X
{
~X() {}
};
union U
{
X x;
~U() {}
};
U u;
The default
Severity: normal
Priority: P3
Component: c++
Assignee: unassigned at gcc dot gnu.org
Reporter: rs2740 at gmail dot com
Target Milestone: ---
Test case (modified from http://stackoverflow.com/q/31229359/2756719):
auto get(int) -> int { ret
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69116
--- Comment #2 from TC ---
I don't think this has anything to do with `end`. Consider the following code:
#include
template struct foo {
T f();
void g(T);
};
template void operator<<(const T&, const foo&) {}
struct x : public
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68071
--- Comment #3 from TC ---
This looks like a duplicate of
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64095
: libstdc++
Assignee: unassigned at gcc dot gnu.org
Reporter: rs2740 at gmail dot com
Target Milestone: ---
basic_string(ForwardIt, ForwardIt) eventually calls _S_copy_chars(), which is
marked _GLIBCXX_NOEXCEPT, so an exception thrown from an iterator operation
inside
Priority: P3
Component: c++
Assignee: unassigned at gcc dot gnu.org
Reporter: rs2740 at gmail dot com
Target Milestone: ---
Consider:
static int i;
static int* temp =
static constexpr int *& = static_cast<int*&&>(temp) + 1;
This correctly doesn't com
stdc++
Assignee: unassigned at gcc dot gnu.org
Reporter: rs2740 at gmail dot com
Target Milestone: ---
Test case:
#include
struct foo {
void operator&() const = delete;
};
int main() {
std::promise p;
p.set_value(foo());
}
results in:
In file included from
: libstdc++
Assignee: unassigned at gcc dot gnu.org
Reporter: rs2740 at gmail dot com
Target Milestone: ---
Test case:
#include
#include
struct test : std::deque {
void operator&() const = delete;
};
int main() {
test t;
std::back_insert_iterator b(t);
Priority: P3
Component: libstdc++
Assignee: unassigned at gcc dot gnu.org
Reporter: rs2740 at gmail dot com
Target Milestone: ---
__use_alloc in and __outermost in
take the address of an allocator with &. They should use __addressof instead.
(__outermost doesn't
: P3
Component: c++
Assignee: unassigned at gcc dot gnu.org
Reporter: rs2740 at gmail dot com
Target Milestone: ---
Something like
#include
int main(){
std::vector v;
for(i : v) {}
}
produces a storm of not-very-enlightening errors on trunk:
prog.cc
t: c++
Assignee: unassigned at gcc dot gnu.org
Reporter: rs2740 at gmail dot com
Target Milestone: ---
Repro:
struct A
{
void f(){ A*&& a = &*this; }
};
results in:
prog.cc: In member function 'void A::f()':
prog.cc:3:24: error: binding 'A* const' to reference of type
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68995
--- Comment #3 from TC ---
(In reply to Jonathan Wakely from comment #2)
> (In reply to Andrew Pinski from comment #1)
> > I think TR1 is considered as non-supported now.
>
> Pretty much.
The documentation may need updating if that's the case.
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=58109
TC changed:
What|Removed |Added
CC||rs2740 at gmail dot com
--- Comment #5 from TC
Priority: P3
Component: libstdc++
Assignee: unassigned at gcc dot gnu.org
Reporter: rs2740 at gmail dot com
Target Milestone: ---
Repro adapted from http://stackoverflow.com/q/34334735/2756719:
#include
#include
#include
std::tr1::shared_ptr test() { return
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67669
TC changed:
What|Removed |Added
CC||rs2740 at gmail dot com
--- Comment #5 from TC
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69016
TC changed:
What|Removed |Added
CC||rs2740 at gmail dot com
--- Comment #3 from TC
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69023
TC changed:
What|Removed |Added
CC||rs2740 at gmail dot com
--- Comment #3 from TC
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71332
TC changed:
What|Removed |Added
CC||rs2740 at gmail dot com
--- Comment #1 from TC
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69287
TC changed:
What|Removed |Added
CC||rs2740 at gmail dot com
--- Comment #1 from TC
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69139
--- Comment #3 from TC ---
Another test case, slightly modified from the original in the linked SO
question:
struct X {
auto get(int) const & -> int { return {}; }
auto get(int) && -> long { return {}; }
};
template auto f(auto
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68515
TC changed:
What|Removed |Added
CC||rs2740 at gmail dot com
--- Comment #3 from TC
Severity: normal
Priority: P3
Component: c++
Assignee: unassigned at gcc dot gnu.org
Reporter: rs2740 at gmail dot com
Target Milestone: ---
Modified repro from http://stackoverflow.com/q/35352168/2756719:
struct A {
typedef int& reference;
};
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69774
TC changed:
What|Removed |Added
CC||rs2740 at gmail dot com
--- Comment #2 from TC
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67013
TC changed:
What|Removed |Added
CC||rs2740 at gmail dot com
--- Comment #11 from TC
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69436
--- Comment #4 from TC ---
Although this still breaks on trunk GCC on Wandbox:
long x;
auto& f(auto) { return x; }
auto* g(auto) { return }
auto r = f(1);
auto p = g(1);
prog.cc: In instantiation of 'auto& f(auto:1) [with auto:1 = int]':
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69436
TC changed:
What|Removed |Added
CC||rs2740 at gmail dot com
--- Comment #3 from TC
: normal
Priority: P3
Component: libstdc++
Assignee: unassigned at gcc dot gnu.org
Reporter: rs2740 at gmail dot com
Target Milestone: ---
Reduced from http://stackoverflow.com/q/35002402/2756719, repro:
#include
#include
class A {
public:
A() = default
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69478
--- Comment #1 from TC ---
It seems that the static_assert should check _IsMove and use either
is_copy_assignable<_Tp> or is_move_assignable<_Tp> depending on its value.
: c++
Assignee: unassigned at gcc dot gnu.org
Reporter: rs2740 at gmail dot com
Target Milestone: ---
Repro:
struct A { A(int = 0); A operator+(A) const; };
struct B { B(int = 0); operator int() const; };
template
void f(){
(A() + A() + ... + A(Is)); // compiles
Priority: P3
Component: c++
Assignee: unassigned at gcc dot gnu.org
Reporter: rs2740 at gmail dot com
Target Milestone: ---
PR64969 fixed cases where an abbreviated function template returns 'auto' or
'decltype(auto)' (or have a trailing return type
Component: c++
Assignee: unassigned at gcc dot gnu.org
Reporter: rs2740 at gmail dot com
Target Milestone: ---
Reduced from http://stackoverflow.com/q/35027853/2756719:
struct A { A(int = 0); };
template class meow;
template A foo;
template A foo<meow> = 1;
auto&&
Priority: P3
Component: c++
Assignee: unassigned at gcc dot gnu.org
Reporter: rs2740 at gmail dot com
Target Milestone: ---
p/P followed by +/- is not part of the pp-number production in C++ before
C++17, but GCC includes them anyway. This results
: UNCONFIRMED
Severity: normal
Priority: P3
Component: c++
Assignee: unassigned at gcc dot gnu.org
Reporter: rs2740 at gmail dot com
Target Milestone: ---
Repro:
template class meow;
template struct purr;
template
struct purr<T, meow...> {};
te
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70587
TC changed:
What|Removed |Added
Status|UNCONFIRMED |RESOLVED
Version|6.0
Severity: normal
Priority: P3
Component: c++
Assignee: unassigned at gcc dot gnu.org
Reporter: rs2740 at gmail dot com
Target Milestone: ---
Reduced from http://stackoverflow.com/q/36578055/2756719.
The following ill-formed code is incorrectly accepted by GCC
Priority: P3
Component: c++
Assignee: unassigned at gcc dot gnu.org
Reporter: rs2740 at gmail dot com
Target Milestone: ---
Repro:
void meow() {
void purr();
void ()() = purr;
[f]{};
}
Per [expr.prim.lambda]/15, capturing a reference
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=53637
TC changed:
What|Removed |Added
CC||rs2740 at gmail dot com
--- Comment #6 from TC
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=53637
--- Comment #8 from TC ---
The standard specifies when copy elision is allowed
(http://eel.is/c++draft/class.copy#31). "return param ? a : b;" is not one of
them. "param ? a : b" is hardly "the name of a non-volatile automatic
object..."
Priority: P3
Component: libstdc++
Assignee: unassigned at gcc dot gnu.org
Reporter: rs2740 at gmail dot com
Target Milestone: ---
None of them is implemented correctly, and several won't compile if actually
used.
template>
expli
rity: normal
Priority: P3
Component: libstdc++
Assignee: unassigned at gcc dot gnu.org
Reporter: rs2740 at gmail dot com
Target Milestone: ---
1) istream_iterator and ostream_iterator's constructors and istream_iterator's
operator-> should use __ad
Priority: P3
Component: c++
Assignee: unassigned at gcc dot gnu.org
Reporter: rs2740 at gmail dot com
Target Milestone: ---
The following modified test case (replacing postfix ++ with prefix and
adjusting the expected values accordingly) from PR61382 still aborts
Status: UNCONFIRMED
Keywords: diagnostic
Severity: minor
Priority: P3
Component: c++
Assignee: unassigned at gcc dot gnu.org
Reporter: rs2740 at gmail dot com
Target Milestone: ---
GCC correctly diagnoses the problem
: normal
Priority: P3
Component: c++
Assignee: unassigned at gcc dot gnu.org
Reporter: rs2740 at gmail dot com
Target Milestone: ---
template
void foo(T t) {
using meow = T;
using meow = int;
}
template void foo(int);
Accepted by clang, rejected by GCC
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70942
TC changed:
What|Removed |Added
CC||rs2740 at gmail dot com
--- Comment #1 from TC
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70101
--- Comment #1 from TC ---
Test case for everything except the first:
#include
#include
#include
#include
#include
struct Cmp : std::less {
explicit Cmp(int) {};
};
Cmp comp(1);
std::allocator alloc;
std::vector vec;
using PQ =
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70942
--- Comment #2 from TC ---
This only appears to affect captureless generic lambdas with a deduced return
type.
It might have something to do with the conversion function template to function
pointer - I'm guessing that it was somehow
Keywords: rejects-valid, wrong-code
Severity: normal
Priority: P3
Component: c++
Assignee: unassigned at gcc dot gnu.org
Reporter: rs2740 at gmail dot com
Target Milestone: ---
The following code, accepted by GCC 5.3, fails to compile in GCC
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70972
--- Comment #1 from TC ---
Originally from http://stackoverflow.com/q/37064993/2756719
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70972
--- Comment #2 from TC ---
Not exactly that familiar with GCC, but looking at
https://gcc.gnu.org/viewcvs/gcc/trunk/gcc/cp/method.c?r1=233719=233718=233719
tree type = TREE_TYPE (parm);
if (DECL_PACK_P (parm))
type =
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70472
TC changed:
What|Removed |Added
CC||rs2740 at gmail dot com
--- Comment #5 from TC
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=60799
TC changed:
What|Removed |Added
CC||rs2740 at gmail dot com
--- Comment #4 from TC
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70667
TC changed:
What|Removed |Added
CC||rs2740 at gmail dot com
--- Comment #1 from TC
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70472
--- Comment #7 from TC ---
(In reply to Jonathan Wakely from comment #6)
> (In reply to TC from comment #5)
> > In any event, it would be wrong to SFINAE on
> > std::is_copy_constructible. The requirement is CopyInsertable,
> > not
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70796
--- Comment #2 from TC ---
It occurred to me that one issue here is whether initialization of the
parameter object (of the constructor) is considered a "value computation [or]
side effect associated with" an initializer-clause. If not, then the
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=56701
--- Comment #7 from TC ---
*** Bug 69208 has been marked as a duplicate of this bug. ***
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69208
TC changed:
What|Removed |Added
Status|UNCONFIRMED |RESOLVED
Resolution|---
oduct: gcc
Version: 7.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: c++
Assignee: unassigned at gcc dot gnu.org
Reporter: rs2740 at gmail dot com
Target Milestone: ---
Reduced from http://stackoverflow.com/q/382138
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=76262
--- Comment #3 from TC ---
(In reply to Jonathan Wakely from comment #2)
> In which case both EDG and Clang get this wrong, as they print "12"
I know that Clang 3.7+ implemented DR1467 without 2137 (in which case "12"
would be the right output)
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=76262
TC changed:
What|Removed |Added
CC||rs2740 at gmail dot com
--- Comment #1 from TC
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70844
TC changed:
What|Removed |Added
CC||rs2740 at gmail dot com
--- Comment #1 from TC
: normal
Priority: P3
Component: libstdc++
Assignee: unassigned at gcc dot gnu.org
Reporter: rs2740 at gmail dot com
Target Milestone: ---
This does not compile:
#include
struct A {};
struct B : A {};
struct C : A {};
auto arr = std::experimental
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79195
--- Comment #1 from TC ---
While we are here, the `return {{forward<_Types>(__t)...}};` in the body should
call std::forward qualified.
Severity: normal
Priority: P3
Component: c++
Assignee: unassigned at gcc dot gnu.org
Reporter: rs2740 at gmail dot com
Target Milestone: ---
template
struct meow;
template
struct meow { };
template struct meow<1>;
prog.cc: In substi
1 - 100 of 230 matches
Mail list logo