Index: compiler-rt/trunk/test/profile/instrprof-set-dir-mode.c =================================================================== --- compiler-rt/trunk/test/profile/instrprof-set-dir-mode.c +++ compiler-rt/trunk/test/profile/instrprof-set-dir-mode.c @@ -25,11 +25,15 @@ if (Mode != __llvm_profile_get_dir_mode()) Ret = -1; else { + // From 'man mkdir': + // "If the parent directory has the set-group-ID bit set, then so will the + // newly created directory." So we mask off S_ISGID below; this test cannot + // control its parent directory. const unsigned Expected = ~umask(0) & Mode; struct stat DirSt; if (stat(Dir, &DirSt) == -1) Ret = -1; - else if (DirSt.st_mode != Expected) { + else if ((DirSt.st_mode & ~S_ISGID) != Expected) { printf("Modes do not match: Expected %o but found %o (%s)\n", Expected, DirSt.st_mode, Dir); Ret = -1;