https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65284

Aldy Hernandez <aldyh at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |jason at gcc dot gnu.org

--- Comment #4 from Aldy Hernandez <aldyh at gcc dot gnu.org> ---
This was caused by r210292:

commit f1ec53b67367cb5d4aba65b5648e5faa5f29bdf0
Author: jason <jason@138bc75d-0d04-0410-961f-82ee72b054a4>
Date:   Fri May 9 20:07:45 2014 +0000

        PR c++/60463
        PR c++/60755
        * lambda.c (lambda_expr_this_capture): Add new parameter
        add_capture_p controlling whether the functions will try to
        capture 'this' via the default capture.
        (maybe_resolve_dummy): Likewise.
        * cp-tree.h: Adjust prototypes.
        * call.c, semantics.c: Change callers of these functions.
        * call.c (build_new_method_call_1): Use the actual 'this' that
        would be potentially captured for the overload resolution, instead
        of the dummy object.

    git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@210292
138bc75d-0d04-0410-961f-82ee72b054a4

Jason, just so I know what I'm looking at here, is the testcase even valid? 
Because mainline on x86-64 has a totally different symptom than ppc with
--enable-checking and a totally different symptom than ppc with
--enable-checking=release.

On mainline on x86-64 (with either default checking or
--enable-checking=release), we get:

reynosa:/build/t/gcc$ ./cc1plus ~/a.ii -quiet -std=c++11 -O2 -I./
/home/aldyh/a.ii: In lambda function:
/home/aldyh/a.ii:50:7: error: using result of function returning ‘void’
       });

On a cross PPC with default checking we get:

reynosa:/build/arm-linux-gnueabihf-checking/gcc$ ./cc1plus ~/a.ii -quiet
-std=c++11 -O2 -I./ 
/home/aldyh/a.ii: In lambda function:
/home/aldyh/a.ii:48:35: error: non-trivial conversion at assignment
       .map([this](uint64_t childId) {
                                   ^
struct ParsedSchema
struct ParsedSchema *
<retval> = D.4925;
/home/aldyh/a.ii:48:35: internal compiler error: verify_gimple failed
0xf4da3b verify_gimple_in_seq(gimple_statement_base*)
    /source/gcc/gcc/tree-cfg.c:4736
0xc7fe6d gimplify_body(tree_node*, bool)
    /source/gcc/gcc/gimplify.c:9117
0xc802a7 gimplify_function_tree(tree_node*)
    /source/gcc/gcc/gimplify.c:9202
0xa2f3e0 cgraph_node::analyze()
    /source/gcc/gcc/cgraphunit.c:633
0xa306ba analyze_functions
    /source/gcc/gcc/cgraphunit.c:1023
0xa34a5f symbol_table::finalize_compilation_unit()
    /source/gcc/gcc/cgraphunit.c:2435
0x799173 cp_write_global_declarations()
    /source/gcc/gcc/cp/decl2.c:4754
Please submit a full bug report,

Finally, on a cross PPC with --enable-checking=release we get:

reynosa:/build/arm-linux-gnueabihf/gcc$ ./cc1plus ~/a.ii -quiet -std=c++11 -O2
-I./ 
/home/aldyh/a.ii: In member function ‘Maybe<ParsedSchema>
ParsedSchema::findNested() const’:
/home/aldyh/a.ii:45:21: internal compiler error: Segmentation fault
 Maybe<ParsedSchema> ParsedSchema::findNested() const {
                     ^
0xd1b9a4 crash_signal
    /source/gcc/gcc/toplev.c:383
0xa40122 maybe_canonicalize_mem_ref_addr
    /source/gcc/gcc/gimple-fold.c:3504
0xa402c3 fold_stmt_1
    /source/gcc/gcc/gimple-fold.c:3556
0xa40e07 fold_stmt(gimple_stmt_iterator*, tree_node* (*)(tree_node*))
    /source/gcc/gcc/gimple-fold.c:3810
0xe438c7 execute
    /source/gcc/gcc/tree-ssa-forwprop.c:2347
Please submit a full bug report,

Odd indeed.  A little guidance would be appreciated, as I don't even know which
one of the three is the correct path.

Reply via email to