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