public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug middle-end/64937] New: [5 Regression] compare debug failure with -fsanitize=address
@ 2015-02-04 17:15 burnus at gcc dot gnu.org
2015-02-04 17:56 ` [Bug middle-end/64937] " burnus at gcc dot gnu.org
` (6 more replies)
0 siblings, 7 replies; 8+ messages in thread
From: burnus at gcc dot gnu.org @ 2015-02-04 17:15 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64937
Bug ID: 64937
Summary: [5 Regression] compare debug failure with
-fsanitize=address
Product: gcc
Version: 5.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: middle-end
Assignee: unassigned at gcc dot gnu.org
Reporter: burnus at gcc dot gnu.org
Split-off from PR64935, which shows the same message but is caused by a
different revision.
The attached test case fails for me with
GCC_COMPARE_DEBUG=yes g++ test.ii -fsanitize=address
with the same message:
g++: error: test.ii: -fcompare-debug failure (length)
Test case is attachment 34664
Works with current 4.9 branch, fails with today's trunk and also with r220315
(the other PR, PR64935, works with that revision).
^ permalink raw reply [flat|nested] 8+ messages in thread
* [Bug middle-end/64937] [5 Regression] compare debug failure with -fsanitize=address
2015-02-04 17:15 [Bug middle-end/64937] New: [5 Regression] compare debug failure with -fsanitize=address burnus at gcc dot gnu.org
@ 2015-02-04 17:56 ` burnus at gcc dot gnu.org
2015-02-04 21:11 ` jakub at gcc dot gnu.org
` (5 subsequent siblings)
6 siblings, 0 replies; 8+ messages in thread
From: burnus at gcc dot gnu.org @ 2015-02-04 17:56 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64937
Tobias Burnus <burnus at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Target Milestone|--- |5.0
--- Comment #1 from Tobias Burnus <burnus at gcc dot gnu.org> ---
That's with x86-64-gnu-linux. It already failed with r218247; I currently don't
plan to bisect it further.
^ permalink raw reply [flat|nested] 8+ messages in thread
* [Bug middle-end/64937] [5 Regression] compare debug failure with -fsanitize=address
2015-02-04 17:15 [Bug middle-end/64937] New: [5 Regression] compare debug failure with -fsanitize=address burnus at gcc dot gnu.org
2015-02-04 17:56 ` [Bug middle-end/64937] " burnus at gcc dot gnu.org
@ 2015-02-04 21:11 ` jakub at gcc dot gnu.org
2015-02-05 11:16 ` jakub at gcc dot gnu.org
` (4 subsequent siblings)
6 siblings, 0 replies; 8+ messages in thread
From: jakub at gcc dot gnu.org @ 2015-02-04 21:11 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64937
Jakub Jelinek <jakub at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |jakub at gcc dot gnu.org
--- Comment #2 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
I'll have a look tomorrow.
^ permalink raw reply [flat|nested] 8+ messages in thread
* [Bug middle-end/64937] [5 Regression] compare debug failure with -fsanitize=address
2015-02-04 17:15 [Bug middle-end/64937] New: [5 Regression] compare debug failure with -fsanitize=address burnus at gcc dot gnu.org
2015-02-04 17:56 ` [Bug middle-end/64937] " burnus at gcc dot gnu.org
2015-02-04 21:11 ` jakub at gcc dot gnu.org
@ 2015-02-05 11:16 ` jakub at gcc dot gnu.org
2015-02-05 12:00 ` jakub at gcc dot gnu.org
` (3 subsequent siblings)
6 siblings, 0 replies; 8+ messages in thread
From: jakub at gcc dot gnu.org @ 2015-02-05 11:16 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64937
Jakub Jelinek <jakub at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|UNCONFIRMED |NEW
Last reconfirmed| |2015-02-05
Ever confirmed|0 |1
--- Comment #3 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
Started with r212564.
^ permalink raw reply [flat|nested] 8+ messages in thread
* [Bug middle-end/64937] [5 Regression] compare debug failure with -fsanitize=address
2015-02-04 17:15 [Bug middle-end/64937] New: [5 Regression] compare debug failure with -fsanitize=address burnus at gcc dot gnu.org
` (2 preceding siblings ...)
2015-02-05 11:16 ` jakub at gcc dot gnu.org
@ 2015-02-05 12:00 ` jakub at gcc dot gnu.org
2015-02-06 8:59 ` jakub at gcc dot gnu.org
` (2 subsequent siblings)
6 siblings, 0 replies; 8+ messages in thread
From: jakub at gcc dot gnu.org @ 2015-02-05 12:00 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64937
Jakub Jelinek <jakub at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |hubicka at gcc dot gnu.org
--- Comment #4 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
I think the problem is that cgraph etc. uses the DECL_ABSTRACT_P flag, which is
set in two different places:
1) in the C++ FE
2) in dwarf2out
In the latter, it does:
was_abstract = DECL_ABSTRACT_P (decl);
set_decl_abstract_flags (decl, 1);
dwarf2out_decl (decl);
if (! was_abstract)
set_decl_abstract_flags (decl, 0);
So, if the decl was already abstract, it doesn't reset anything. But,
unfortunately, the set_decl_abstract_flags call is recursive, and not all the
vars in there necessary have DECL_ABSTRACT_P flag already set.
Thus, I think either we should make sure that when the C++ FE sets
DECL_ABSTRACT_P flag on something, it is always set on all the contained decls
too (but how to ensure this if we e.g. further decls are added in various
passes to those functions?), or we should change dwarf2out.c to reset it always
to the previous state, rather than sometimes clearing it (despite it might be
set already before) and sometimes setting it and not clearing it afterwards.
For the latter, guess we could just add a vec<tree> into which we'd push the
decls on which we set the flag, and reversion would be performed by walking the
vector and clearing DECL_ABSTRACT_P flags. I guess I'll try to implement the
dwarf2out.c change.
^ permalink raw reply [flat|nested] 8+ messages in thread
* [Bug middle-end/64937] [5 Regression] compare debug failure with -fsanitize=address
2015-02-04 17:15 [Bug middle-end/64937] New: [5 Regression] compare debug failure with -fsanitize=address burnus at gcc dot gnu.org
` (3 preceding siblings ...)
2015-02-05 12:00 ` jakub at gcc dot gnu.org
@ 2015-02-06 8:59 ` jakub at gcc dot gnu.org
2015-02-06 18:27 ` jakub at gcc dot gnu.org
2015-02-06 18:32 ` jakub at gcc dot gnu.org
6 siblings, 0 replies; 8+ messages in thread
From: jakub at gcc dot gnu.org @ 2015-02-06 8:59 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64937
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
^ permalink raw reply [flat|nested] 8+ messages in thread
* [Bug middle-end/64937] [5 Regression] compare debug failure with -fsanitize=address
2015-02-04 17:15 [Bug middle-end/64937] New: [5 Regression] compare debug failure with -fsanitize=address burnus at gcc dot gnu.org
` (4 preceding siblings ...)
2015-02-06 8:59 ` jakub at gcc dot gnu.org
@ 2015-02-06 18:27 ` jakub at gcc dot gnu.org
2015-02-06 18:32 ` jakub at gcc dot gnu.org
6 siblings, 0 replies; 8+ messages in thread
From: jakub at gcc dot gnu.org @ 2015-02-06 18:27 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64937
--- Comment #5 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
Author: jakub
Date: Fri Feb 6 18:26:59 2015
New Revision: 220483
URL: https://gcc.gnu.org/viewcvs?rev=220483&root=gcc&view=rev
Log:
PR middle-end/64937
* dwarf2out.c (set_block_abstract_flags, set_decl_abstract_flags):
Replace setting argument with abstract_vec, always set BLOCK_ABSTRACT
or DECL_ABSTRACT_P flags to 1 rather than to setting, and if it wasn't
1 before, push it to abstract_vec.
(dwarf2out_abstract_function): Adjust caller. Don't call
set_decl_abstract_flags second time, instead clear BLOCK_ABSTRACT or
DECL_ABSTRACT_P flags for all abstract_vec elts.
* g++.dg/asan/pr64937.C: New test.
Added:
trunk/gcc/testsuite/g++.dg/asan/pr64937.C
Modified:
trunk/gcc/ChangeLog
trunk/gcc/dwarf2out.c
trunk/gcc/testsuite/ChangeLog
^ permalink raw reply [flat|nested] 8+ messages in thread
* [Bug middle-end/64937] [5 Regression] compare debug failure with -fsanitize=address
2015-02-04 17:15 [Bug middle-end/64937] New: [5 Regression] compare debug failure with -fsanitize=address burnus at gcc dot gnu.org
` (5 preceding siblings ...)
2015-02-06 18:27 ` jakub at gcc dot gnu.org
@ 2015-02-06 18:32 ` jakub at gcc dot gnu.org
6 siblings, 0 replies; 8+ messages in thread
From: jakub at gcc dot gnu.org @ 2015-02-06 18:32 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64937
Jakub Jelinek <jakub at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|ASSIGNED |RESOLVED
Resolution|--- |FIXED
--- Comment #6 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
Fixed.
^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2015-02-06 18:32 UTC | newest]
Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-02-04 17:15 [Bug middle-end/64937] New: [5 Regression] compare debug failure with -fsanitize=address burnus at gcc dot gnu.org
2015-02-04 17:56 ` [Bug middle-end/64937] " burnus at gcc dot gnu.org
2015-02-04 21:11 ` jakub at gcc dot gnu.org
2015-02-05 11:16 ` jakub at gcc dot gnu.org
2015-02-05 12:00 ` jakub at gcc dot gnu.org
2015-02-06 8:59 ` jakub at gcc dot gnu.org
2015-02-06 18:27 ` jakub at gcc dot gnu.org
2015-02-06 18:32 ` 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).