During the initial Solaris sanitizer port, I missed to enable the `sanitizer_common` and `ubsan_minimal` testsuites. This patch fixes this, correcting a few unportabilities: - `Posix/getpass.cpp` failed to link since Solaris lacks `libutil`. Omitting the library lets the test `PASS`, but I thought adding `%libutil` along the lines of `%librt` to be overkill. - One subtest of `Posix/getpw_getgr.cpp` is disabled because Solaris `getpwent_r` has a different signature than expected. - `/dev/null` is a symlink on Solaris. - XPG7 specifies that `uname` returns a non-negative value on success. Tested on `amd64-pc-solaris2.11` and `sparcv9-sun-solaris2.11`. Differential Revision: https://reviews.llvm.org/D91606
19 lines
312 B
C++
19 lines
312 B
C++
// RUN: %clangxx -O0 -g %s -o %t && %run %t
|
|
|
|
#include <assert.h>
|
|
#include <stdlib.h>
|
|
#include <sys/stat.h>
|
|
|
|
int main(void) {
|
|
struct stat st;
|
|
|
|
assert(!lstat("/dev/null", &st));
|
|
#if defined(__sun__) && defined(__svr4__)
|
|
assert(S_ISLNK(st.st_mode));
|
|
#else
|
|
assert(S_ISCHR(st.st_mode));
|
|
#endif
|
|
|
|
return 0;
|
|
}
|