compiles in gcc 7.2.0 and 8.0.0 20170814, but should give an error in the
last line:
[expr.prim.id.qual] states, that `foo :: Foo` is a qualified ID. (`foo` is a
type-name). [basic.lookup.qual] then requires `foo` to denote a class,
enumeration or namespace.
Clang, MSVC (and IAR) give diagnostics for
On 08/14/2017 04:22 PM, Eric Gallager wrote:
I'm emailing this manually to the list because Bugzilla is down and I
can't file a bug on Bugzilla about Bugzilla being down. The error
message looks like this:
Bugzilla and the rest of gcc.gnu.org have been down much of
the afternoon/evening due to
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81596
Jeffrey A. Law changed:
What|Removed |Added
CC||law at redhat dot com
--- Comment #2 fr
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81835
Bug ID: 81835
Summary: cxxabi.h has invalid link in comment.
Product: gcc
Version: 7.1.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: demangler
I'm emailing this manually to the list because Bugzilla is down and I
can't file a bug on Bugzilla about Bugzilla being down. The error
message looks like this:
Software error:
Can't connect to the database.
Error: Can't connect to local MySQL server through socket
'/var/lib/mysql/mysql.sock' (2)
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81850
Bug ID: 81850
Summary: OpenMP target enter data compilation issues
Product: gcc
Version: 7.1.1
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: c++
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81117
--- Comment #6 from Martin Sebor ---
Author: msebor
Date: Mon Aug 14 20:21:44 2017
New Revision: 251100
URL: https://gcc.gnu.org/viewcvs?rev=251100&root=gcc&view=rev
Log:
PR c/81117 - Improve buffer overflow checking in strncpy - part 2
gcc/Cha
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=38592
Thomas Koenig changed:
What|Removed |Added
Component|fortran |tree-optimization
--- Comment #8 from Th
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=45113
--- Comment #2 from Jonathan Wakely ---
Clang has a nice error for test3
45113_3.cc:2:15: error: type-id cannot have a name
typedef U A;
^
45113_3.cc:2:21: error: type-id cannot have a name
typedef U A;
^
2 erro
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79845
--- Comment #5 from Roland Illig ---
Thank you very much. The patch looks great.
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81117
--- Comment #5 from Martin Sebor ---
Author: msebor
Date: Mon Aug 14 18:35:13 2017
New Revision: 251098
URL: https://gcc.gnu.org/viewcvs?rev=251098&root=gcc&view=rev
Log:
PR c/81117 - Improve buffer overflow checking in strncpy - part 1
gcc/Cha
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=26426
--- Comment #2 from Jonathan Wakely ---
I don't think this is a bug. B is the primary base class for Z so has already
been allocated (as part of the Y subobject, in I-2b), and so the B base class
of the X subobject is not allocated as part of the
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=46091
--- Comment #11 from Uroš Bizjak ---
(In reply to Uroš Bizjak from comment #10)
> I'll look into this a bit some more. However, these insn should be rare, so
> do not expect any noticeable application speed-up ...
From the Agner lists, it is n
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=45113
Eric Gallager changed:
What|Removed |Added
Keywords||diagnostic
Status|UNCONFIRME
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81849
--- Comment #1 from Andrew Pinski ---
This is expected and I thought was documented a few times over as an GNU
extension.
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68485
--- Comment #7 from Waldemar Brodkorb ---
I tried compiling gaps 3.16.
Are you compiling the minimal test case?
Can you show the command line you are using?
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81849
Bug ID: 81849
Summary: missing -Wstringop-overflow writing to the last
element of a struct
Product: gcc
Version: 8.0
Status: UNCONFIRMED
Severity: normal
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78804
--- Comment #25 from Ian Lance Taylor ---
I have no particular concerns with dropping the bitfield code, but clearly it
has to be tested on a couple of little-endian platforms.
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78804
--- Comment #24 from DJ Delorie ---
"olegendo at gcc dot gnu.org" writes:
> I don't know why it was decided to use this ABI. Maybe some legacy
> stuff.
Compatibility with Renesas's compiler.
"olegendo at gcc dot gnu.org" writes:
> I don't know why it was decided to use this ABI. Maybe some legacy
> stuff.
Compatibility with Renesas's compiler.
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78804
--- Comment #23 from Oleg Endo ---
(In reply to Ian Lance Taylor from comment #22)
> The patch to make the structs themselves attribute((packed)) is approved.
>
Thanks!
> If you want to investigate dropping the bitfield code entirely, that is
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78804
--- Comment #22 from Ian Lance Taylor ---
The patch to make the structs themselves attribute((packed)) is approved.
If you want to investigate dropping the bitfield code entirely, that is fine
with me.
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=46091
--- Comment #10 from Uroš Bizjak ---
(In reply to Avi Kivity from comment #9)
> I believe the comment is wrong. Here's what the manual says:
>
> "This instruction can be used with a LOCK prefix to allow the instruction to
> be executed atomicall
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=77810
--- Comment #4 from David Malcolm ---
Patch looks reasonable, and I can approve it.
CC me on it when you post it to gcc-patches.
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78804
--- Comment #21 from Oleg Endo ---
(In reply to Ian Lance Taylor from comment #18)
> How could the size of that struct possibly be 12? Can you figure out what
> is causing that to happen? There are exactly 64 bits specified, and the
> fields ar
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=46091
--- Comment #9 from Avi Kivity ---
I believe the comment is wrong. Here's what the manual says:
"This instruction can be used with a LOCK prefix to allow the instruction to be
executed atomically."
Implying that without the LOCK prefix, it is n
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78163
Andrew Pinski changed:
What|Removed |Added
Target Milestone|7.3 |---
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78098
Andrew Pinski changed:
What|Removed |Added
Target Milestone|7.3 |---
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78804
--- Comment #20 from Oleg Endo ---
(In reply to jos...@codesourcery.com from comment #17)
> Presumably the bit-field issue is RX defaulting to MS bit-field layout
> (rx_is_ms_bitfield_layout suggests making the structure itself packed
> should
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=46091
--- Comment #8 from Uroš Bizjak ---
(In reply to Uroš Bizjak from comment #7)
> From i386.md:
>
> ;; %%% bts, btr, btc, bt.
> ;; In general these instructions are *slow* when applied to memory,
> ;; since they enforce atomic operation. When app
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78804
--- Comment #19 from Ian Lance Taylor ---
OK, following Joseph's suggestion, what does this print when compiled with
-m64bit-doubles?
#include
struct bits
{
unsigned long long fraction:52 __attribute__ ((packed));
unsigned int exp:11 __att
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78804
--- Comment #18 from Ian Lance Taylor ---
How could the size of that struct possibly be 12? Can you figure out what is
causing that to happen? There are exactly 64 bits specified, and the fields
are all packed. The size ought to be 8. I don't
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=46091
--- Comment #7 from Uroš Bizjak ---
From i386.md:
;; %%% bts, btr, btc, bt.
;; In general these instructions are *slow* when applied to memory,
;; since they enforce atomic operation. When applied to registers,
;; it depends on the cpu implemen
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78804
--- Comment #17 from joseph at codesourcery dot com ---
Presumably the bit-field issue is RX defaulting to MS bit-field layout
(rx_is_ms_bitfield_layout suggests making the structure itself packed
should help).
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=46091
--- Comment #6 from Avi Kivity ---
I believe bts/btc/btr can do more - they also calculate the word offset when
addressing memory, see first comment.
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78804
--- Comment #16 from Oleg Endo ---
(In reply to Ian Lance Taylor from comment #15)
> What does this program print on rx?
12
6f883f80 0 0
>
> Overall the softfp code is newer and probably better. Converting rx to use
> the softfp code is p
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78804
--- Comment #15 from Ian Lance Taylor ---
What does this program print on rx?
#include
struct bits
{
unsigned long long fraction:52 __attribute__ ((packed));
unsigned int exp:11 __attribute__ ((packed));
unsigned int sign:1 __attribute__
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79998
--- Comment #3 from Martin Sebor ---
Author: msebor
Date: Mon Aug 14 16:47:40 2017
New Revision: 251096
URL: https://gcc.gnu.org/viewcvs?rev=251096&root=gcc&view=rev
Log:
PR translation/79998 - typo in diagnostic "specified bound %wu"
gcc/Chang
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79998
Martin Sebor changed:
What|Removed |Added
Keywords||diagnostic
Status|ASSIGNED
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=46091
Uroš Bizjak changed:
What|Removed |Added
Target||x86_64
Status|ASSIGNED
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=46091
--- Comment #4 from uros at gcc dot gnu.org ---
Author: uros
Date: Mon Aug 14 16:42:15 2017
New Revision: 251095
URL: https://gcc.gnu.org/viewcvs?rev=251095&root=gcc&view=rev
Log:
PR target/46091
* config/i386/i386.md (*anddi_1_bt
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=38087
Jonathan Wakely changed:
What|Removed |Added
Keywords||accepts-invalid
Status|WAI
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81643
Wilco changed:
What|Removed |Added
Status|NEW |RESOLVED
CC|
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79998
Martin Sebor changed:
What|Removed |Added
Status|UNCONFIRMED |ASSIGNED
Last reconfirmed|
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81643
--- Comment #8 from Wilco ---
Author: wilco
Date: Mon Aug 14 16:18:37 2017
New Revision: 251094
URL: https://gcc.gnu.org/viewcvs?rev=251094&root=gcc&view=rev
Log:
[AArch64] Fix longbranch test
Fix longbranch test so it still generates long tbz
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79997
Martin Sebor changed:
What|Removed |Added
Keywords||diagnostic
Status|UNCONFIRMED
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=44580
Eric Gallager changed:
What|Removed |Added
Keywords||diagnostic
Status|UNCONFIRME
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81776
--- Comment #3 from Martin Sebor ---
I think GCC needs to avoid performing sprintf optimizations when it sees a
non-standard (i.e., undefined) format conversion (the sprintf pass does).
For Glibc customizations that override standard conversions
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=44520
Eric Gallager changed:
What|Removed |Added
Status|UNCONFIRMED |NEW
Last reconfirmed|
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=44400
Eric Gallager changed:
What|Removed |Added
Keywords||accepts-invalid
Status|UNCON
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=43105
Eric Gallager changed:
What|Removed |Added
Status|UNCONFIRMED |NEW
Last reconfirmed|
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=43454
Eric Gallager changed:
What|Removed |Added
Status|UNCONFIRMED |NEW
Last reconfirmed|
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80227
--- Comment #2 from Jonathan Wakely ---
Idiomatic C++ code should not warn.
Clang and ICC accept the former and reject the latter. VC++ rejects both, which
is odd.
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=40897
Eric Gallager changed:
What|Removed |Added
Status|WAITING |RESOLVED
Resolution|---
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=38087
Eric Gallager changed:
What|Removed |Added
Status|UNCONFIRMED |WAITING
Last reconfirmed|
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=40897
Eric Gallager changed:
What|Removed |Added
Status|UNCONFIRMED |WAITING
Last reconfirmed|
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=36685
Eric Gallager changed:
What|Removed |Added
Keywords||diagnostic
Status|UNCONFIRME
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81832
--- Comment #4 from amker at gcc dot gnu.org ---
Testing a patch.
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=30812
Eric Gallager changed:
What|Removed |Added
Status|UNCONFIRMED |NEW
Last reconfirmed|
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=51277
Eric Gallager changed:
What|Removed |Added
Keywords||diagnostic
CC|
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=31798
David Grayson changed:
What|Removed |Added
CC||davidegrayson at gmail dot com
--- Comme
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=46091
Uroš Bizjak changed:
What|Removed |Added
Status|UNCONFIRMED |ASSIGNED
Last reconfirmed|
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79845
Bill Schmidt changed:
What|Removed |Added
Status|NEW |RESOLVED
Resolution|---
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79845
--- Comment #3 from Bill Schmidt ---
Author: wschmidt
Date: Mon Aug 14 14:26:33 2017
New Revision: 251092
URL: https://gcc.gnu.org/viewcvs?rev=251092&root=gcc&view=rev
Log:
[gcc]
2017-08-14 Bill Schmidt
PR target/79845
* con
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=15369
Eric Gallager changed:
What|Removed |Added
CC||seongbae.park at gmail dot com
--- Comme
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=30257
Eric Gallager changed:
What|Removed |Added
Status|UNCONFIRMED |RESOLVED
CC|
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=26426
Eric Gallager changed:
What|Removed |Added
Status|UNCONFIRMED |WAITING
Last reconfirmed|
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81801
Richard Biener changed:
What|Removed |Added
CC||jakub at gcc dot gnu.org,
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80227
Eric Gallager changed:
What|Removed |Added
Status|UNCONFIRMED |NEW
Last reconfirmed|
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81799
Richard Biener changed:
What|Removed |Added
Status|NEW |RESOLVED
Resolution|---
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81787
Richard Biener changed:
What|Removed |Added
Keywords||diagnostic
Target Milestone|---
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81785
Richard Biener changed:
What|Removed |Added
Keywords||wrong-code
CC|
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71192
Eric Gallager changed:
What|Removed |Added
Status|UNCONFIRMED |WAITING
Last reconfirmed|
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67075
Eric Gallager changed:
What|Removed |Added
Status|UNCONFIRMED |WAITING
Last reconfirmed|
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=39466
Eric Gallager changed:
What|Removed |Added
Status|UNCONFIRMED |WAITING
Last reconfirmed|
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81782
Richard Biener changed:
What|Removed |Added
CC||rguenth at gcc dot gnu.org
--- Comment
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81776
Richard Biener changed:
What|Removed |Added
Status|UNCONFIRMED |NEW
Last reconfirmed|
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79820
--- Comment #12 from Jonathan Wakely ---
I was wrong, and that code path is used by std::sync_with_stdio(false) when we
reset cin, cout, cerr and clog to use stdio_filebuf stream buffers. So there's
no need for a testcase.
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79820
--- Comment #11 from Maurice Bos ---
(In reply to Jonathan Wakely from comment #7)
> The bug title says std::ifstream sets errno to zero, but it should never run
> stdio_filebuf::sys_open. Do you have a testcase for this?
>
> We should still fix
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81845
Eric Gallager changed:
What|Removed |Added
Keywords||documentation
Status|UNCONFI
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81832
--- Comment #3 from Martin Liška ---
> I think this is a general and latent problem with the interaction between
> the copy-header pass, and the loop distribution pass. Tracing back further I
> see this start with r249994 .
Yes, sorry for not tr
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81848
Martin Jambor changed:
What|Removed |Added
Status|UNCONFIRMED |RESOLVED
Resolution|---
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81354
Martin Jambor changed:
What|Removed |Added
CC||jamborm at gcc dot gnu.org
--- Comment #
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78804
Oleg Endo changed:
What|Removed |Added
CC||ian at airs dot com
--- Comment #14 from Ole
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81829
--- Comment #2 from Martin Liška ---
Confirmed, there are various small issues and I've been testing a patch for
that. The patch will also include unit tests to prevent next issues related.
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81848
--- Comment #2 from rguenther at suse dot de ---
On Mon, 14 Aug 2017, jamborm at gcc dot gnu.org wrote:
> https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81848
>
> Martin Jambor changed:
>
>What|Removed |Added
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81848
Martin Jambor changed:
What|Removed |Added
Target||x86_64-linux
CC|
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81848
Bug ID: 81848
Summary: Segmentation fault at
gimple-ssa-strength-reduction.c:2356
Product: gcc
Version: 8.0
Status: UNCONFIRMED
Severity: normal
Prior
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71570
Paolo Carlini changed:
What|Removed |Added
Status|ASSIGNED|RESOLVED
Resolution|---
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71570
--- Comment #13 from paolo at gcc dot gnu.org ---
Author: paolo
Date: Mon Aug 14 12:23:03 2017
New Revision: 251091
URL: https://gcc.gnu.org/viewcvs?rev=251091&root=gcc&view=rev
Log:
/cp
2017-08-14 Paolo Carlini
PR c++/71570
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79820
Jonathan Wakely changed:
What|Removed |Added
Known to work||7.2.1, 8.0
Target Milestone|8.0
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81751
--- Comment #10 from Jonathan Wakely ---
Author: redi
Date: Mon Aug 14 12:14:09 2017
New Revision: 251090
URL: https://gcc.gnu.org/viewcvs?rev=251090&root=gcc&view=rev
Log:
PR libstdc++/81751 don't call fflush(NULL)
Backport from mainline
2017-
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79820
--- Comment #10 from Jonathan Wakely ---
Author: redi
Date: Mon Aug 14 12:14:09 2017
New Revision: 251090
URL: https://gcc.gnu.org/viewcvs?rev=251090&root=gcc&view=rev
Log:
PR libstdc++/81751 don't call fflush(NULL)
Backport from mainline
2017-
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=53984
--- Comment #12 from Jonathan Wakely ---
Author: redi
Date: Mon Aug 14 12:14:01 2017
New Revision: 251089
URL: https://gcc.gnu.org/viewcvs?rev=251089&root=gcc&view=rev
Log:
PR libstdc++/53984 handle exceptions in basic_istream::sentry
Backport
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78804
--- Comment #13 from joseph at codesourcery dot com ---
fp-bit != soft-fp. soft-fp always uses bit-fields (with the order
depending on the endianness). It's possible that in some cases you need
to ensure the declared types of the bit-fields a
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81155
H.J. Lu changed:
What|Removed |Added
CC|hjl at gcc dot gnu.org |hjl.tools at gmail dot
com
--- Comment
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81799
--- Comment #3 from amker at gcc dot gnu.org ---
Author: amker
Date: Mon Aug 14 11:46:03 2017
New Revision: 251088
URL: https://gcc.gnu.org/viewcvs?rev=251088&root=gcc&view=rev
Log:
PR tree-optimization/81799
* tree-loop-distribut
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65862
niva at niisi dot msk.ru changed:
What|Removed |Added
CC||niva at niisi dot msk.ru
--- C
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81832
James Greenhalgh changed:
What|Removed |Added
CC||amker at gcc dot gnu.org
--- Comment
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=46932
--- Comment #9 from Wilco ---
Author: wilco
Date: Mon Aug 14 11:18:50 2017
New Revision: 251087
URL: https://gcc.gnu.org/viewcvs?rev=251087&root=gcc&view=rev
Log:
Add check_effective_target_autoincdec.
Add check_effective_target_autoincdec that
1 - 100 of 356 matches
Mail list logo