http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48421

           Summary: [4.7 Regression] ICE in build_new_method_call
           Product: gcc
           Version: 4.7.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c++
        AssignedTo: unassig...@gcc.gnu.org
        ReportedBy: r...@gcc.gnu.org


#include <functional>
#include <chrono>
#include <memory>
#include <condition_variable>

struct Impl;
typedef std::shared_ptr<Impl> shared_base_type;

struct base
{
  shared_base_type ptr;
};

struct Impl : base
{
  Impl() = default;
};


The c++0x code above gives me an ICE with trunk, but it goes away if I change
any of the includes, or try to compile a preprocessed version (which is why I
haven't attached preprocessed source)

$  ~/gcc/4.x/bin/g++ -std=c++0x ice.cc -c 
ice.cc:14:8: internal compiler error: Segmentation fault
Please submit a full bug report,
with preprocessed source if appropriate.
See <http://gcc.gnu.org/bugs.html> for instructions.


Program received signal SIGSEGV, Segmentation fault.
build_new_method_call (instance=0x7ffff5954b70, fns=<value optimized out>,
args=0x7fffffffdd50, conversion_path=0x7ffff5a3ae40, 
    flags=<value optimized out>, fn_p=0x7fffffffdd58, complain=<value optimized
out>) at ../../src/gcc/gcc/cp/call.c:6801
6801      basetype = TYPE_MAIN_VARIANT (TREE_TYPE (instance));

Reply via email to