[analyzer] ClangSA should tablegen doc urls refering to the main doc page

AFAIK we should prefer
https://clang.llvm.org/docs/analyzer/checkers.html to
https://clang-analyzer.llvm.org/{available_checks,alpha_checks}.html

This patch will ensure that the doc urls produced by tablegen for the
ClangSA, will use the new url. Nothing else will be changed.

Reviewed By: martong, Szelethus, ASDenysPetrov

Differential Revision: https://reviews.llvm.org/D121387
This commit is contained in:
Balazs Benics 2022-04-19 12:14:27 +02:00
parent 63c4ca9d14
commit 744e2a3e22
2 changed files with 8 additions and 13 deletions

View File

@ -451,7 +451,7 @@
"fullDescription": { "fullDescription": {
"text": "Check for logical errors for function calls and Objective-C message expressions (e.g., uninitialized arguments, null function pointers)" "text": "Check for logical errors for function calls and Objective-C message expressions (e.g., uninitialized arguments, null function pointers)"
}, },
"helpUri": "https://clang-analyzer.llvm.org/available_checks.html#core.CallAndMessage", "helpUri": "https://clang.llvm.org/docs/analyzer/checkers.html#core-callandmessage",
"id": "core.CallAndMessage", "id": "core.CallAndMessage",
"name": "core.CallAndMessage" "name": "core.CallAndMessage"
}, },
@ -459,7 +459,7 @@
"fullDescription": { "fullDescription": {
"text": "Check for division by zero" "text": "Check for division by zero"
}, },
"helpUri": "https://clang-analyzer.llvm.org/available_checks.html#core.DivideZero", "helpUri": "https://clang.llvm.org/docs/analyzer/checkers.html#core-dividezero",
"id": "core.DivideZero", "id": "core.DivideZero",
"name": "core.DivideZero" "name": "core.DivideZero"
}, },
@ -467,7 +467,7 @@
"fullDescription": { "fullDescription": {
"text": "Check for memory leaks, double free, and use-after-free problems. Traces memory managed by malloc()/free()." "text": "Check for memory leaks, double free, and use-after-free problems. Traces memory managed by malloc()/free()."
}, },
"helpUri": "https://clang-analyzer.llvm.org/available_checks.html#unix.Malloc", "helpUri": "https://clang.llvm.org/docs/analyzer/checkers.html#unix-malloc",
"id": "unix.Malloc", "id": "unix.Malloc",
"name": "unix.Malloc" "name": "unix.Malloc"
} }

View File

@ -75,23 +75,18 @@ static inline uint64_t getValueFromBitsInit(const BitsInit *B, const Record &R)
} }
static std::string getCheckerDocs(const Record &R) { static std::string getCheckerDocs(const Record &R) {
StringRef LandingPage;
const BitsInit *BI = R.getValueAsBitsInit("Documentation"); const BitsInit *BI = R.getValueAsBitsInit("Documentation");
if (!BI) if (!BI)
PrintFatalError(R.getLoc(), "missing Documentation<...> member for " + PrintFatalError(R.getLoc(), "missing Documentation<...> member for " +
getCheckerFullName(&R)); getCheckerFullName(&R));
uint64_t V = getValueFromBitsInit(BI, R); // Ignore 'Documentation<NotDocumented>' checkers.
if (V == 1) if (getValueFromBitsInit(BI, R) == 0)
LandingPage = "available_checks.html";
else if (V == 2)
LandingPage = "alpha_checks.html";
if (LandingPage.empty())
return ""; return "";
return (llvm::Twine("https://clang-analyzer.llvm.org/") + LandingPage + "#" + std::string CheckerFullName = StringRef(getCheckerFullName(&R, "-")).lower();
getCheckerFullName(&R)) return (llvm::Twine("https://clang.llvm.org/docs/analyzer/checkers.html#") +
CheckerFullName)
.str(); .str();
} }