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: