This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug c++/30017] ICE in cp_expr_size, at cp/cp-objcp-common.c:101
- From: "rguenth at gcc dot gnu dot org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 29 Nov 2006 19:47:30 -0000
- Subject: [Bug c++/30017] ICE in cp_expr_size, at cp/cp-objcp-common.c:101
- References: <bug-30017-10053@http.gcc.gnu.org/bugzilla/>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- Comment #4 from rguenth at gcc dot gnu dot org 2006-11-29 19:47 -------
Further reduced testcase:
class NAMES_ITEM { };
struct ATOM {
const NAMES_ITEM& getPredItem() const { }
};
class ATOMSET {
public:
class FIND_RESULT {
const NAMES_ITEM &pattern;
public:
FIND_RESULT() : pattern(pattern) { }
FIND_RESULT(const FIND_RESULT &f) : pattern(f.pattern) { }
FIND_RESULT(const NAMES_ITEM &pattern2) : pattern(pattern2) { }
void operator=(const FIND_RESULT &f)
{
__builtin_memcpy(this,&f,sizeof(FIND_RESULT));
}
};
void find(const ATOM &pattern, FIND_RESULT &f) {
FIND_RESULT result(pattern.getPredItem());
f = result;
}
};
class INTERPRET {
ATOMSET positive;
public:
void findInPositivePart(const ATOM &pattern, ATOMSET::FIND_RESULT &f)
{
positive.find(pattern,f);
}
};
struct GINTERPRET {
void isTrue (void);
};
extern INTERPRET J;
static GINTERPRET *I;
void printQueryI() {
ATOM pattern;
ATOMSET::FIND_RESULT f;
J.findInPositivePart(pattern,f);
I->isTrue();
}
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=30017