[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#361602: Log for failed build of apt-watch_0.3.2-5



* Martin Michlmayr <tbm@cyrius.com> [2006-04-11 12:02]:
> Anyway, you need "-O2 -Werror -c" to see the ICE with 4.2.

A test case from delta is attached but it's still fairly large.  The
ICE happens on AMD64, but not on i386.


(sid)3578:tbm@em64t: ~/delta/bin] /usr/lib/gcc-snapshot/bin/g++ -O2 -Werror mini.c
cc1plus: warnings being treated as errors
mini.c: In function 'void do_update(int)':
mini.c:278: warning: deprecated conversion from string constant to 'char*''
mini.c: At global scope:
mini.c:340: error: inlined_to pointer is set but no predecesors found
virtual SlaveProgress::~SlaveProgress()/96: (inline copy in void do_update(int)/17) availability:available(15) 35 insns (309 after inlining) tree externally_visible finalized inlinable
  called by:
  calls: OpProgress::~OpProgress()/2 (inlined) void operator delete(void*)/64
mini.c:340: internal compiler error: verify_cgraph_node failed
Please submit a full bug report,
with preprocessed source if appropriate.
See <URL:http://gcc.gnu.org/bugs.html> for instructions.
zsh: exit 1     /usr/lib/gcc-snapshot/bin/g++ -O2 -Werror mini.c
(sid)3579:tbm@em64t: ~/delta/bin]


-- 
Martin Michlmayr
http://www.cyrius.com/
extern "C"
{
  typedef long unsigned int size_t;
  __extension__ typedef unsigned int __mode_t;
  __extension__ typedef int __pid_t;
  __extension__ typedef long int __ssize_t;
  extern int snprintf (char *__restrict __s, size_t __maxlen,
		       __const char *__restrict __format, ...) throw ()
    __attribute__ ((__format__ (__printf__, 3, 4)));
  extern int memcmp (__const void *__s1, __const void *__s2,
		     size_t __n) throw () __attribute__ ((__pure__))
    __attribute__ ((__nonnull__ (1, 2)));
  extern "C"
  {
    typedef __ssize_t ssize_t;
  }
  extern void exit (int __status) throw () __attribute__ ((__noreturn__));
  extern int access (__const char *__name, int __type) throw ()
    __attribute__ ((__nonnull__ (1)));
  extern ssize_t read (int __fd, void *__buf, size_t __nbytes);
  extern __pid_t fork (void) throw ();
}
namespace std
{
  template < typename _Alloc > class allocator;
  template < class _CharT > struct char_traits;
    template < typename _CharT, typename _Traits =
    char_traits < _CharT >, typename _Alloc =
    allocator < _CharT > >class basic_string;
  typedef basic_string < char >string;
    template < typename _Tp > inline const _Tp & min (const _Tp & __a,
						      const _Tp & __b)
  {
  }
}
namespace __gnu_cxx
{
  template < typename _Tp > class new_allocator
  {
  public:typedef size_t size_type;
      template < typename _Tp1 > struct rebind
    {
      typedef new_allocator < _Tp1 > other;
    };
  };
}
namespace std
{
  template < typename _Tp > class allocator:public __gnu_cxx::new_allocator <
    _Tp >
  {
  };
  template <> struct char_traits <char >
  {
    typedef char char_type;
    static int compare (const char_type * __s1, const char_type * __s2,
			size_t __n)
    {
      return memcmp (__s1, __s2, __n);
    }
  };
}
typedef int _Atomic_word;
namespace __gnu_cxx
{
  _Atomic_word
    __attribute__ ((__unused__)) __exchange_and_add (volatile _Atomic_word *
						     __mem, int __val);
}
namespace std
{
  template < typename _CharT, typename _Traits,
    typename _Alloc > class basic_string
  {
    typedef typename _Alloc::template rebind <
      _CharT >::other _CharT_alloc_type;
  public:typedef _Traits traits_type;
    typedef _Alloc allocator_type;
    typedef typename _CharT_alloc_type::size_type size_type;
  private:struct _Rep_base
    {
      _Atomic_word _M_refcount;
    };
    struct _Rep:_Rep_base
    {
      _CharT *_M_refdata () throw ()
      {
	return reinterpret_cast < _CharT * >(this + 1);
      }
      void _M_dispose (const _Alloc & __a)
      {
	if (__builtin_expect (this != &_S_empty_rep (), false))
	  if (__gnu_cxx::__exchange_and_add (&this->_M_refcount, -1) <= 0)
	    _M_destroy (__a);
      }
      void _M_destroy (const _Alloc &) throw ();
    };
    struct _Alloc_hider:_Alloc
    {
      _Alloc_hider (_CharT * __dat, const _Alloc & __a):_Alloc (__a),
	_M_p (__dat)
      {
      }
      _CharT *_M_p;
    };
  private:mutable _Alloc_hider _M_dataplus;
    _CharT *_M_data () const
    {
    }
    _Rep *_M_rep () const
    {
      return &((reinterpret_cast < _Rep * >(_M_data ()))[-1]);
    }
    static _Rep & _S_empty_rep ()
    {
    }
  public:inline basic_string ();
    basic_string (const basic_string & __str);
    basic_string (const _CharT * __s, const _Alloc & __a = _Alloc ());
    ~basic_string ()
    {
      _M_rep ()->_M_dispose (this->get_allocator ());
    }
  public:size_type size ()const
    {
    }
    basic_string & append (const basic_string & __str);
    const _CharT *c_str () const
    {
      return _M_data ();
    }
    const _CharT *data () const
    {
    }
    allocator_type get_allocator () const
    {
      return _M_dataplus;
    }
    int compare (const basic_string & __str) const
    {
      const size_type __size = this->size ();
      const size_type __osize = __str.size ();
      const size_type __len = std::min (__size, __osize);
      int __r = traits_type::compare (_M_data (), __str.data (), __len);
    }
  };
template < typename _CharT, typename _Traits, typename _Alloc > inline basic_string < _CharT, _Traits, _Alloc >::basic_string ():_M_dataplus (_S_empty_rep ()._M_refdata (),
	       _Alloc
	       ())
  {
  }
  template < typename _CharT, typename _Traits,
    typename _Alloc > inline basic_string < _CharT, _Traits,
    _Alloc > operator+ (const basic_string < _CharT, _Traits, _Alloc > &__lhs,
			const _CharT * __rhs)
  {
    basic_string < _CharT, _Traits, _Alloc > __str (__lhs);
    __str.append (__rhs);
  }
  template < typename _CharT, typename _Traits,
    typename _Alloc > inline bool operator!= (const basic_string < _CharT,
					      _Traits, _Alloc > &__lhs,
					      const basic_string < _CharT,
					      _Traits, _Alloc > &__rhs)
  {
    return __rhs.compare (__lhs) != 0;
  }
  extern template class basic_string < char >;
}
using
  std::string;
class
  pkgSourceList
{
public:bool
  ReadMainList ();
};
class
  OpProgress
{
  string
    LastOp;
  string
    LastSubOp;
protected:string
    Op;
  virtual ~
  OpProgress ()
  {
  };
};
class
  Configuration
{
public:string
  Find (const char *Name, const char *Default = 0) const;
  string
  FindDir (const char *Name, const char *Default = 0) const;
};
extern Configuration *
  _config;
class
  GlobalError
{
public:bool
  Errno (const char *Function, const char *Description, ...)
    __attribute__ ((format (printf, 3, 4)));
  inline bool
  PendingError ()
  {
  };
};
GlobalError *
_GetErrorObj ();
extern
  "C"
{
  extern
    "C"
  {
    extern int
    mkdir (__const char *__path, __mode_t __mode)
    throw () __attribute__ ((__nonnull__ (1)));
  }
}
void
write_msg (int fd, unsigned char msgid, const std::string & str);
bool
copy_newer_recursive (const std::string & src, const std::string & dst);
string
  syslistdir;
string
  sysarchivedir;
static void
setup_archive_dir (int outfd);
static void
setup_list_dir (int outfd);
class
  SlaveProgress:
  OpProgress
{
  int
    fd;
  float
    reserve;
public: SlaveProgress (int _fd, float _reserve = 0):fd (_fd),
    reserve (_reserve)
  {
  }
};
static void
dump_errors (unsigned char msgid, int fd)
{
  string
    mylistdir = _config->FindDir ("Dir::State::Lists");
  if (mylistdir != syslistdir)
    copy_newer_recursive (syslistdir, mylistdir);
}
static void
do_update (int outfd)
{
  setup_list_dir (outfd);
  setup_archive_dir (outfd);
  SlaveProgress
  progress (outfd);
  pkgSourceList
    sources;
  if (sources.ReadMainList () == false || _GetErrorObj ()->PendingError ())
    {
      dump_errors (137, outfd);
      return;
    }
  switch (fork ())
    {
    case 0:
      {
	char *
	  authhelper = "/usr/lib/apt-watch" "/apt-watch-auth-helper";
      }
    }
}
const char *
  HOME;
static void
setup_archive_dir (int outfd)
{
  if (access (sysarchivedir.c_str (), 4 | 2 | 1) != 0)
    {
      if (!HOME)
	{
	  write_msg (outfd, 137,
		     "The HOME directory is not set, can't create a private cache directory.");
	  exit (-1);
	}
      string
	myarchivedir = string (HOME) + "/.apt-watch/archives";
      string
	partial = myarchivedir + "/partial";
    }
}
static void
setup_list_dir (int outfd)
{
  if (access (syslistdir.c_str (), 4 | 2 | 1) != 0)
    {
      if (!HOME)
	{
	  write_msg (outfd, 137,
		     "The HOME directory variable is not set, can't create a private list directory.");
	}
      string
	mylistdir = string (HOME) + "/.apt-watch/lists";
      string
	partial = mylistdir + "/partial";
      if (access (partial.c_str (), 0) != 0)
	mkdir (partial.c_str (), 0755);
    }
}
bool
slave_handle_input (int cmdfd, int outfd)
{
  unsigned char
    c;
  if (read (cmdfd, &c, sizeof (c)) < (int) sizeof (c))
    {
    }
  else
    switch (c)
      {
      case 0:
	do_update (outfd);
	{
	  char
	    s[1024];
	  snprintf (s, sizeof (s) - 1, "Bad command ID %d", c);
	  write_msg (outfd, 137, s);
	}
      }
}

Reply to: