[Bug c++/30017] ICE in cp_expr_size, at cp/cp-objcp-common.c:101

rguenth at gcc dot gnu dot org gcc-bugzilla@gcc.gnu.org
Wed Nov 29 19:47:00 GMT 2006



------- 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



More information about the Gcc-bugs mailing list