public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug c++/55076] New: ice when compiling lambda function
@ 2012-10-25 22:57 tim at klingt dot org
2012-10-26 10:05 ` [Bug c++/55076] " paolo.carlini at oracle dot com
` (8 more replies)
0 siblings, 9 replies; 10+ messages in thread
From: tim at klingt dot org @ 2012-10-25 22:57 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55076
Bug #: 55076
Summary: ice when compiling lambda function
Classification: Unclassified
Product: gcc
Version: 4.7.2
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: c++
AssignedTo: unassigned@gcc.gnu.org
ReportedBy: tim@klingt.org
Created attachment 28533
--> http://gcc.gnu.org/bugzilla/attachment.cgi?id=28533
preprocessed source
attached source produces an ICE with gcc-4.7, but not with gcc-4.6:
home/tim/workspace/supercollider/server/supernova/./audio_backend/upsampled_audio_backend.hpp:
In lambda function:
/home/tim/workspace/supercollider/server/supernova/./audio_backend/upsampled_audio_backend.hpp:59:67:
internal compiler error: Segmentation fault
gcc -v
Using built-in specs.
COLLECT_GCC=/usr/bin/gcc-4.7.real
COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/4.7/lto-wrapper
Target: x86_64-linux-gnu
Configured with: ../src/configure -v --with-pkgversion='Ubuntu/Linaro
4.7.2-2ubuntu1' --with-bugurl=file:///usr/share/doc/gcc-4.7/README.Bugs
--enable-languages=c,c++,go,fortran,objc,obj-c++ --prefix=/usr
--program-suffix=-4.7 --enable-shared --enable-linker-build-id
--with-system-zlib --libexecdir=/usr/lib --without-included-gettext
--enable-threads=posix --with-gxx-include-dir=/usr/include/c++/4.7
--libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu
--enable-libstdcxx-debug --enable-libstdcxx-time=yes --enable-gnu-unique-object
--enable-plugin --enable-objc-gc --disable-werror --with-arch-32=i686
--with-tune=generic --enable-checking=release --build=x86_64-linux-gnu
--host=x86_64-linux-gnu --target=x86_64-linux-gnu
Thread model: posix
gcc version 4.7.2 (Ubuntu/Linaro 4.7.2-2ubuntu1)
^ permalink raw reply [flat|nested] 10+ messages in thread
* [Bug c++/55076] ice when compiling lambda function
2012-10-25 22:57 [Bug c++/55076] New: ice when compiling lambda function tim at klingt dot org
@ 2012-10-26 10:05 ` paolo.carlini at oracle dot com
2012-10-26 13:20 ` markus at trippelsdorf dot de
` (7 subsequent siblings)
8 siblings, 0 replies; 10+ messages in thread
From: paolo.carlini at oracle dot com @ 2012-10-26 10:05 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55076
Paolo Carlini <paolo.carlini at oracle dot com> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|UNCONFIRMED |WAITING
Last reconfirmed| |2012-10-26
Ever Confirmed|0 |1
--- Comment #1 from Paolo Carlini <paolo.carlini at oracle dot com> 2012-10-26 10:04:46 UTC ---
Please reduce the testcase to a manageable size: we have open quite a few
issues about lambdas and most likely this is a duplicate, but it's
unnecessarily hard to tell with a 600+ KB attachment.
^ permalink raw reply [flat|nested] 10+ messages in thread
* [Bug c++/55076] ice when compiling lambda function
2012-10-25 22:57 [Bug c++/55076] New: ice when compiling lambda function tim at klingt dot org
2012-10-26 10:05 ` [Bug c++/55076] " paolo.carlini at oracle dot com
@ 2012-10-26 13:20 ` markus at trippelsdorf dot de
2012-10-26 13:31 ` paolo.carlini at oracle dot com
` (6 subsequent siblings)
8 siblings, 0 replies; 10+ messages in thread
From: markus at trippelsdorf dot de @ 2012-10-26 13:20 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55076
Markus Trippelsdorf <markus at trippelsdorf dot de> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |markus at trippelsdorf dot
| |de
--- Comment #2 from Markus Trippelsdorf <markus at trippelsdorf dot de> 2012-10-26 13:19:45 UTC ---
Testcase was over 7.1 Mbyte, but parallel creduce is quick.
markus@x4 tmp % cat test.ii
void src_new (int);
template < bool > struct A
{
void prepare ()
{
([=] { src_new (con); });
}
int con;
};
markus@x4 tmp % g++ -std=c++11 -c test.ii
test.ii: In lambda function:
test.ii:6:28: internal compiler error: Segmentation fault
([=] { src_new (con); });
^
^ permalink raw reply [flat|nested] 10+ messages in thread
* [Bug c++/55076] ice when compiling lambda function
2012-10-25 22:57 [Bug c++/55076] New: ice when compiling lambda function tim at klingt dot org
2012-10-26 10:05 ` [Bug c++/55076] " paolo.carlini at oracle dot com
2012-10-26 13:20 ` markus at trippelsdorf dot de
@ 2012-10-26 13:31 ` paolo.carlini at oracle dot com
2012-10-26 13:42 ` markus at trippelsdorf dot de
` (5 subsequent siblings)
8 siblings, 0 replies; 10+ messages in thread
From: paolo.carlini at oracle dot com @ 2012-10-26 13:31 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55076
Paolo Carlini <paolo.carlini at oracle dot com> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|WAITING |NEW
CC|paolo.carlini at oracle dot |
|com |
--- Comment #3 from Paolo Carlini <paolo.carlini at oracle dot com> 2012-10-26 13:30:35 UTC ---
Indeed. Thanks Markus! Next, whether it's actually a (more or less manifest)
dup.
^ permalink raw reply [flat|nested] 10+ messages in thread
* [Bug c++/55076] ice when compiling lambda function
2012-10-25 22:57 [Bug c++/55076] New: ice when compiling lambda function tim at klingt dot org
` (2 preceding siblings ...)
2012-10-26 13:31 ` paolo.carlini at oracle dot com
@ 2012-10-26 13:42 ` markus at trippelsdorf dot de
2012-10-26 14:01 ` redi at gcc dot gnu.org
` (4 subsequent siblings)
8 siblings, 0 replies; 10+ messages in thread
From: markus at trippelsdorf dot de @ 2012-10-26 13:42 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55076
--- Comment #4 from Markus Trippelsdorf <markus at trippelsdorf dot de> 2012-10-26 13:41:36 UTC ---
Valgrind says:
markus@x4 tmp % /var/tmp/gcc_valgrind/usr/local/bin/g++ -std=c++11 -c test.ii
==10632== Invalid read of size 2
==10632== at 0x668622: lvalue_kind(tree_node const*) (tree.c:148)
==10632== by 0x668803: lvalue_kind(tree_node const*) (tree.c:103)
==10632== by 0x6691C8: lvalue_p(tree_node const*) (tree.c:269)
==10632== by 0x4CF7EC: standard_conversion(tree_node*, tree_node*,
tree_node*, bool, int) (call.c:1104)
==10632== by 0x4D5629: implicit_conversion(tree_node*, tree_node*,
tree_node*, bool, int, int) (call.c:1696)
==10632== by 0x4D7702: add_function_candidate(z_candidate**, tree_node*,
tree_node*, tree_node*, vec_t<tree_node*> const*, tree_node*, tree_node*,
int, int) (call.c:1987)
==10632== by 0x4D3EEE: add_candidates(tree_node*, tree_node*,
vec_t<tree_node*> const*, tree_node*, tree_node*, bool, tree_node*, tree_node*,
int,
z_candidate**, int) (call.c:4954)
==10632== by 0x4DA7B0: perform_overload_resolution(tree_node*,
vec_t<tree_node*> const*, z_candidate**, bool*, int) (call.c:3807)
==10632== by 0x4E0D5C: build_new_function_call(tree_node*,
vec_t<tree_node*>**, bool, int) (call.c:3884)
==10632== by 0x656EEA: finish_call_expr(tree_node*, vec_t<tree_node*>**,
bool, bool, int) (semantics.c:2190)
==10632== by 0x5CEA2E: cp_parser_postfix_expression(cp_parser*, bool, bool,
bool, cp_id_kind*) (parser.c:5814)
==10632== by 0x5D9D32: cp_parser_unary_expression(cp_parser*, bool, bool,
cp_id_kind*) (parser.c:6682)
==10632== Address 0x0 is not stack'd, malloc'd or (recently) free'd
==10632==
^ permalink raw reply [flat|nested] 10+ messages in thread
* [Bug c++/55076] ice when compiling lambda function
2012-10-25 22:57 [Bug c++/55076] New: ice when compiling lambda function tim at klingt dot org
` (3 preceding siblings ...)
2012-10-26 13:42 ` markus at trippelsdorf dot de
@ 2012-10-26 14:01 ` redi at gcc dot gnu.org
2012-10-26 14:07 ` markus at trippelsdorf dot de
` (3 subsequent siblings)
8 siblings, 0 replies; 10+ messages in thread
From: redi at gcc dot gnu.org @ 2012-10-26 14:01 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55076
--- Comment #5 from Jonathan Wakely <redi at gcc dot gnu.org> 2012-10-26 14:00:45 UTC ---
probably bug 54403
^ permalink raw reply [flat|nested] 10+ messages in thread
* [Bug c++/55076] ice when compiling lambda function
2012-10-25 22:57 [Bug c++/55076] New: ice when compiling lambda function tim at klingt dot org
` (4 preceding siblings ...)
2012-10-26 14:01 ` redi at gcc dot gnu.org
@ 2012-10-26 14:07 ` markus at trippelsdorf dot de
2012-10-26 16:49 ` markus at trippelsdorf dot de
` (2 subsequent siblings)
8 siblings, 0 replies; 10+ messages in thread
From: markus at trippelsdorf dot de @ 2012-10-26 14:07 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55076
--- Comment #6 from Markus Trippelsdorf <markus at trippelsdorf dot de> 2012-10-26 14:07:11 UTC ---
(In reply to comment #5)
> probably bug 54403
Yes. Valgrind backtrace is the same.
^ permalink raw reply [flat|nested] 10+ messages in thread
* [Bug c++/55076] ice when compiling lambda function
2012-10-25 22:57 [Bug c++/55076] New: ice when compiling lambda function tim at klingt dot org
` (5 preceding siblings ...)
2012-10-26 14:07 ` markus at trippelsdorf dot de
@ 2012-10-26 16:49 ` markus at trippelsdorf dot de
2012-10-26 23:38 ` paolo.carlini at oracle dot com
2013-02-14 23:43 ` paolo.carlini at oracle dot com
8 siblings, 0 replies; 10+ messages in thread
From: markus at trippelsdorf dot de @ 2012-10-26 16:49 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55076
--- Comment #7 from Markus Trippelsdorf <markus at trippelsdorf dot de> 2012-10-26 16:48:46 UTC ---
What about the following naïve patch?
At least it fixes the problem and causes no new test suite regressions.
diff --git a/gcc/cp/tree.c b/gcc/cp/tree.c
index 8d555c2..0f1a75d 100644
--- a/gcc/cp/tree.c
+++ b/gcc/cp/tree.c
@@ -145,7 +145,7 @@ lvalue_kind (const_tree ref)
case ARRAY_REF:
case PARM_DECL:
case RESULT_DECL:
- if (TREE_CODE (TREE_TYPE (ref)) != METHOD_TYPE)
+ if (TREE_TYPE (ref) && TREE_CODE (TREE_TYPE (ref)) != METHOD_TYPE)
return clk_ordinary;
break;
^ permalink raw reply [flat|nested] 10+ messages in thread
* [Bug c++/55076] ice when compiling lambda function
2012-10-25 22:57 [Bug c++/55076] New: ice when compiling lambda function tim at klingt dot org
` (6 preceding siblings ...)
2012-10-26 16:49 ` markus at trippelsdorf dot de
@ 2012-10-26 23:38 ` paolo.carlini at oracle dot com
2013-02-14 23:43 ` paolo.carlini at oracle dot com
8 siblings, 0 replies; 10+ messages in thread
From: paolo.carlini at oracle dot com @ 2012-10-26 23:38 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55076
--- Comment #8 from Paolo Carlini <paolo.carlini at oracle dot com> 2012-10-26 23:38:33 UTC ---
I think that at some point I had the same trick in my local tree too, then I
don't remember sending it to the mailing list, not even as a RFC. I think you
should, CC Jason, and ask whether is it possible that at that point TREE_TYPE
is not set or the check would just paper over the real issue.
^ permalink raw reply [flat|nested] 10+ messages in thread
* [Bug c++/55076] ice when compiling lambda function
2012-10-25 22:57 [Bug c++/55076] New: ice when compiling lambda function tim at klingt dot org
` (7 preceding siblings ...)
2012-10-26 23:38 ` paolo.carlini at oracle dot com
@ 2013-02-14 23:43 ` paolo.carlini at oracle dot com
8 siblings, 0 replies; 10+ messages in thread
From: paolo.carlini at oracle dot com @ 2013-02-14 23:43 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55076
Paolo Carlini <paolo.carlini at oracle dot com> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|NEW |RESOLVED
Resolution| |DUPLICATE
--- Comment #9 from Paolo Carlini <paolo.carlini at oracle dot com> 2013-02-14 23:42:45 UTC ---
Fixed mainline and 4.7.3.
*** This bug has been marked as a duplicate of bug 54122 ***
^ permalink raw reply [flat|nested] 10+ messages in thread
end of thread, other threads:[~2013-02-14 23:43 UTC | newest]
Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2012-10-25 22:57 [Bug c++/55076] New: ice when compiling lambda function tim at klingt dot org
2012-10-26 10:05 ` [Bug c++/55076] " paolo.carlini at oracle dot com
2012-10-26 13:20 ` markus at trippelsdorf dot de
2012-10-26 13:31 ` paolo.carlini at oracle dot com
2012-10-26 13:42 ` markus at trippelsdorf dot de
2012-10-26 14:01 ` redi at gcc dot gnu.org
2012-10-26 14:07 ` markus at trippelsdorf dot de
2012-10-26 16:49 ` markus at trippelsdorf dot de
2012-10-26 23:38 ` paolo.carlini at oracle dot com
2013-02-14 23:43 ` paolo.carlini at oracle dot com
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).