Hi,
conformance/interface/pthread_mutexattr_gettype/speculative/3-1.c tests that pthread_mutexattr_gettype() on a zeroed pthread_mutexattr_t returns EINVAL. But a zeroed pthread_mutexattr_t _may_ be valid: posix says that pthread_mutexattr_gettype() _may_ return EINVAL if the pthread_mutexattr_t is invalid, but not that it _shall_ return EINVAL in such case (since being invalid is not defined).
Just like conformance/interface/pthread_mutex_destroy/speculative/4-2.c, conformance/interface/pthread_mutexattr_gettype/speculative/3-1.c should also PASS even when EINVAL is not returned.
POSIX 2008 even clarified it: `The [EINVAL] error for an uninitialized mutex attributes object is removed; this condition results in undefined behavior.'