This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug c++/53135] internal compiler error: in value_format, at dwarf2out.c:8010


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53135

Khem Raj <raj.khem at gmail dot com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Target|                            |arm-oe-linux-gnueabi
      Known to fail|                            |4.7.0, 4.7.1

--- Comment #1 from Khem Raj <raj.khem at gmail dot com> 2012-04-27 05:59:56 UTC ---
testcase

class QAbstractFileEngine
{
public:
    enum FileFlag {

        ReadOwnerPerm = 0x4000, WriteOwnerPerm = 0x2000, ExeOwnerPerm = 0x1000,
        ReadUserPerm = 0x0400, WriteUserPerm = 0x0200, ExeUserPerm = 0x0100,
        ReadGroupPerm = 0x0040, WriteGroupPerm = 0x0020, ExeGroupPerm = 0x0010,
        ReadOtherPerm = 0x0004, WriteOtherPerm = 0x0002, ExeOtherPerm = 0x0001,

    };
    bool setPermissions(unsigned int perms);
};

extern const char* str;
extern bool foo(const char*, int);

bool QAbstractFileEngine::setPermissions(unsigned int perms)
{   
    bool ret = false;
    int mode = 0;
    if (perms & ReadOwnerPerm)
        mode |= 0400;
    if (perms & WriteOwnerPerm)
        mode |= 0200;
    if (perms & ExeOwnerPerm)
        mode |= 0100;
    if (perms & ReadUserPerm)
        mode |= 0400;
    if (perms & WriteUserPerm)
        mode |= 0200;
    if (perms & ExeUserPerm)
        mode |= 0100;
    if (perms & ReadGroupPerm)
        mode |= (0400 >> 3);
    if (perms & WriteGroupPerm)
        mode |= (0200 >> 3);
    if (perms & ExeGroupPerm)
        mode |= (0100 >> 3);
    if (perms & ReadOtherPerm)
        mode |= ((0400 >> 3) >> 3);
    if (perms & WriteOtherPerm)
        mode |= ((0200 >> 3) >> 3);
    if (perms & ExeOtherPerm)
        mode |= ((0100 >> 3) >> 3);
        ret = foo(str, mode) == 0;
    return ret;
}


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]