Hi all,
Right now the trunk does not compile with GCC 4.4.7 (the GCC that
comes with CentOS 6; yes I know old) after revision 277200 (October
19).
The error message is:
../../gcc/gcc/cp/cvt.c:1043: error: operands to ?: have different
types ‘escaped_string’ and ‘const char [1]’
../../gcc/gcc/cp/cvt.c:1060: error: operands to ?: have different
types ‘escaped_string’ and ‘const char [1]’
Is it acceptable to put in a workaround for this?
Thanks,
Andrew Pinski
PS A simplified testcase which shows the issue:
#include <cstddef>
#include <stdlib.h>
class escaped_string
{
public:
escaped_string () { m_owned = false; m_str = NULL; };
~escaped_string () { if (m_owned) free (m_str); }
operator const char *() const { return m_str; }
void escape (const char *);
private:
escaped_string(const escaped_string&) {}
escaped_string& operator=(const escaped_string&) { return *this; }
char *m_str;
bool m_owned;
};
void f(void)
{
escaped_string a;
const char *b = a ? a : "";
}