All these potential null pointer dereferences are reported by my static analyzer for null smart pointer dereferences, which has a different implementation from alpha.cplusplus.SmartPtr.
The checked pointers in this patch are initialized by Target::createXXX functions. When the creator function pointer is not correctly set, a null pointer will be returned, or the creator function may originally return a null pointer.
Some of them may not make sense as they may be checked before entering the function, but I fixed them all in this patch. I submit this fix because 1) similar checks are found in some other places in the LLVM codebase for the same return value of the function; and, 2) some of the pointers are dereferenced before they are checked, which may definitely trigger a null pointer dereference if the return value is nullptr.
clang-format: please reformat the code
-#define CHECK_TARGET_INFO_CREATION(NAME) \ - do { \ - if (!NAME) { \ - WithColor::error(errs(), "llvm-objdump") \ - << "couldn't initialize disassembler for target " << TripleName \ - << '\n'; \ - return; \ - } \ +#define CHECK_TARGET_INFO_CREATION(NAME) \ + do { \6 diff lines are omitted. See full path.