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