diff --git a/clang-tidy.md b/clang-tidy.md
index d21742723..4671ca9d1 100644
--- a/clang-tidy.md
+++ b/clang-tidy.md
@@ -51,7 +51,7 @@ We are not interesting in the size/complexity of a function.
`readability-redundant-member-init`
`readability-simplify-boolean-expr`
-These do not (always) increase readbility.
+These do not (always) increase readability.
`bugprone-macro-parentheses`
`readability-implicit-bool-conversion`
@@ -76,7 +76,7 @@ This leads to a mismatch of raw string literals and regular ones and does reduce
`readability-convert-member-functions-to-static`
-Disabled because of false postives with Qt `slot` methods (see https://github.com/llvm/llvm-project/issues/57520).
+Disabled because of false positives with Qt `slot` methods (see https://github.com/llvm/llvm-project/issues/57520).
`-clang-analyzer-*`
@@ -116,7 +116,7 @@ Produces a lot of false positives since it is too vague in its analysis.
`performance-inefficient-string-concatenation`
-Produces many warnings which very much look like false ppsitives (needs to be reported upstream).
+Produces many warnings which very much look like false positives (needs to be reported upstream).
`bugprone-suspicious-include`
diff --git a/lib/checkexceptionsafety.cpp b/lib/checkexceptionsafety.cpp
index 397f99eaf..87b35c549 100644
--- a/lib/checkexceptionsafety.cpp
+++ b/lib/checkexceptionsafety.cpp
@@ -321,7 +321,7 @@ void CheckExceptionSafety::unhandledExceptionSpecification()
const SymbolDatabase* const symbolDatabase = mTokenizer->getSymbolDatabase();
for (const Scope * scope : symbolDatabase->functionScopes) {
- // only check functions without exception epecification
+ // only check functions without exception specification
if (scope->function && !scope->function->isThrow() &&
scope->className != "main" && scope->className != "wmain" &&
scope->className != "_tmain" && scope->className != "WinMain") {
diff --git a/lib/token.cpp b/lib/token.cpp
index 3dff266e7..b4e3dcd0a 100644
--- a/lib/token.cpp
+++ b/lib/token.cpp
@@ -2050,7 +2050,7 @@ static void removeOverlaps(std::list& values)
return false;
if (x.valueKind != y.valueKind)
return false;
- // TODO: Remove points coverd in a lower or upper bound
+ // TODO: Remove points covered in a lower or upper bound
// TODO: Remove lower or upper bound already covered by a lower and upper bound
if (!x.equalValue(y))
return false;