Search code examples
xcodemacosclangobjective-c++clang-static-analyzer

Prevent Xcode/clang from raising logic error on intentionally flawed code


For testing purposes only, I'm including a function to intentionally crash my app (testing my app's handling of unintentional crashes). To do so, I'm using:

strcpy(0, "crash");

Of course, when doing analysis of my code, Xcode reports the logic error Null pointer argument in call to string copy function. I've tried wrapping the offending code like so:

#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wnonnull"
    strcpy(0, "crash");
#pragma clang diagnostic pop

But Xcode (v9.2 (9C40b)) still complains (this isn't a warning, it's a logic error, I understand). Is there some other way to keep Xcode/clang from flagging this code? Is there some better way to induce a crash that can be protected from Xcode/clang analysis error?


Solution

  • This worked for me (no need to wrap in warning suppressions). It passes Xcode/clang's analysis and still results in the crash I want:

    char *x = (char *)@"0".integerValue; strcpy(x, "crash");