Skip to content

Commit 096c62c

Browse files
authored
[clang-tidy] Rename 'cert-err58-cpp' to 'bugprone-throwing-static-initialization' (llvm#158151)
Closes llvm#157298.
1 parent 81f83a8 commit 096c62c

File tree

11 files changed

+56
-28
lines changed

11 files changed

+56
-28
lines changed

clang-tools-extra/clang-tidy/bugprone/BugproneTidyModule.cpp

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -88,6 +88,7 @@
8888
#include "TaggedUnionMemberCountCheck.h"
8989
#include "TerminatingContinueCheck.h"
9090
#include "ThrowKeywordMissingCheck.h"
91+
#include "ThrowingStaticInitializationCheck.h"
9192
#include "TooSmallLoopVariableCheck.h"
9293
#include "UncheckedOptionalAccessCheck.h"
9394
#include "UncheckedStringToNumberConversionCheck.h"
@@ -261,6 +262,8 @@ class BugproneModule : public ClangTidyModule {
261262
"bugprone-terminating-continue");
262263
CheckFactories.registerCheck<ThrowKeywordMissingCheck>(
263264
"bugprone-throw-keyword-missing");
265+
CheckFactories.registerCheck<ThrowingStaticInitializationCheck>(
266+
"bugprone-throwing-static-initialization");
264267
CheckFactories.registerCheck<TooSmallLoopVariableCheck>(
265268
"bugprone-too-small-loop-variable");
266269
CheckFactories.registerCheck<UncheckedOptionalAccessCheck>(

clang-tools-extra/clang-tidy/bugprone/CMakeLists.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -90,6 +90,7 @@ add_clang_library(clangTidyBugproneModule STATIC
9090
TaggedUnionMemberCountCheck.cpp
9191
TerminatingContinueCheck.cpp
9292
ThrowKeywordMissingCheck.cpp
93+
ThrowingStaticInitializationCheck.cpp
9394
TooSmallLoopVariableCheck.cpp
9495
UncheckedOptionalAccessCheck.cpp
9596
UncheckedStringToNumberConversionCheck.cpp

clang-tools-extra/clang-tidy/cert/StaticObjectExceptionCheck.cpp renamed to clang-tools-extra/clang-tidy/bugprone/ThrowingStaticInitializationCheck.cpp

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,15 +6,15 @@
66
//
77
//===----------------------------------------------------------------------===//
88

9-
#include "StaticObjectExceptionCheck.h"
9+
#include "ThrowingStaticInitializationCheck.h"
1010
#include "clang/AST/ASTContext.h"
1111
#include "clang/ASTMatchers/ASTMatchFinder.h"
1212

1313
using namespace clang::ast_matchers;
1414

15-
namespace clang::tidy::cert {
15+
namespace clang::tidy::bugprone {
1616

17-
void StaticObjectExceptionCheck::registerMatchers(MatchFinder *Finder) {
17+
void ThrowingStaticInitializationCheck::registerMatchers(MatchFinder *Finder) {
1818
// Match any static or thread_local variable declaration that has an
1919
// initializer that can throw.
2020
Finder->addMatcher(
@@ -34,7 +34,8 @@ void StaticObjectExceptionCheck::registerMatchers(MatchFinder *Finder) {
3434
this);
3535
}
3636

37-
void StaticObjectExceptionCheck::check(const MatchFinder::MatchResult &Result) {
37+
void ThrowingStaticInitializationCheck::check(
38+
const MatchFinder::MatchResult &Result) {
3839
const auto *VD = Result.Nodes.getNodeAs<VarDecl>("var");
3940
const auto *Func = Result.Nodes.getNodeAs<FunctionDecl>("func");
4041

@@ -52,4 +53,4 @@ void StaticObjectExceptionCheck::check(const MatchFinder::MatchResult &Result) {
5253
}
5354
}
5455

55-
} // namespace clang::tidy::cert
56+
} // namespace clang::tidy::bugprone

clang-tools-extra/clang-tidy/cert/StaticObjectExceptionCheck.h renamed to clang-tools-extra/clang-tidy/bugprone/ThrowingStaticInitializationCheck.h

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -6,21 +6,21 @@
66
//
77
//===----------------------------------------------------------------------===//
88

9-
#ifndef LLVM_CLANG_TOOLS_EXTRA_CLANG_TIDY_CERT_ERR58_CPP_H
10-
#define LLVM_CLANG_TOOLS_EXTRA_CLANG_TIDY_CERT_ERR58_CPP_H
9+
#ifndef LLVM_CLANG_TOOLS_EXTRA_CLANG_TIDY_BUGPRONE_THROWINGSTATICINITIALIZATIONCHECK_H
10+
#define LLVM_CLANG_TOOLS_EXTRA_CLANG_TIDY_BUGPRONE_THROWINGSTATICINITIALIZATIONCHECK_H
1111

1212
#include "../ClangTidyCheck.h"
1313

14-
namespace clang::tidy::cert {
14+
namespace clang::tidy::bugprone {
1515

1616
/// Checks whether the constructor for a static or thread_local object will
1717
/// throw.
1818
///
1919
/// For the user-facing documentation see:
20-
/// http://clang.llvm.org/extra/clang-tidy/checks/cert/err58-cpp.html
21-
class StaticObjectExceptionCheck : public ClangTidyCheck {
20+
/// http://clang.llvm.org/extra/clang-tidy/checks/bugprone/throwing-static-initialization.html
21+
class ThrowingStaticInitializationCheck : public ClangTidyCheck {
2222
public:
23-
StaticObjectExceptionCheck(StringRef Name, ClangTidyContext *Context)
23+
ThrowingStaticInitializationCheck(StringRef Name, ClangTidyContext *Context)
2424
: ClangTidyCheck(Name, Context) {}
2525
bool isLanguageVersionSupported(const LangOptions &LangOpts) const override {
2626
return getLangOpts().CPlusPlus && getLangOpts().CXXExceptions;
@@ -29,6 +29,6 @@ class StaticObjectExceptionCheck : public ClangTidyCheck {
2929
void check(const ast_matchers::MatchFinder::MatchResult &Result) override;
3030
};
3131

32-
} // namespace clang::tidy::cert
32+
} // namespace clang::tidy::bugprone
3333

34-
#endif // LLVM_CLANG_TOOLS_EXTRA_CLANG_TIDY_CERT_ERR58_CPP_H
34+
#endif // LLVM_CLANG_TOOLS_EXTRA_CLANG_TIDY_BUGPRONE_THROWINGSTATICINITIALIZATIONCHECK_H

clang-tools-extra/clang-tidy/cert/CERTTidyModule.cpp

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
#include "../bugprone/SizeofExpressionCheck.h"
1818
#include "../bugprone/SpuriouslyWakeUpFunctionsCheck.h"
1919
#include "../bugprone/SuspiciousMemoryComparisonCheck.h"
20+
#include "../bugprone/ThrowingStaticInitializationCheck.h"
2021
#include "../bugprone/UncheckedStringToNumberConversionCheck.h"
2122
#include "../bugprone/UnhandledSelfAssignmentCheck.h"
2223
#include "../bugprone/UnsafeFunctionsCheck.h"
@@ -39,7 +40,6 @@
3940
#include "NonTrivialTypesLibcMemoryCallsCheck.h"
4041
#include "ProperlySeededRandomGeneratorCheck.h"
4142
#include "SetLongJmpCheck.h"
42-
#include "StaticObjectExceptionCheck.h"
4343
#include "ThrownExceptionTypeCheck.h"
4444
#include "VariadicFunctionDefCheck.h"
4545

@@ -257,7 +257,8 @@ class CERTModule : public ClangTidyModule {
257257
CheckFactories.registerCheck<misc::ThrowByValueCatchByReferenceCheck>(
258258
"cert-err09-cpp");
259259
CheckFactories.registerCheck<SetLongJmpCheck>("cert-err52-cpp");
260-
CheckFactories.registerCheck<StaticObjectExceptionCheck>("cert-err58-cpp");
260+
CheckFactories.registerCheck<bugprone::ThrowingStaticInitializationCheck>(
261+
"cert-err58-cpp");
261262
CheckFactories.registerCheck<ThrownExceptionTypeCheck>("cert-err60-cpp");
262263
CheckFactories.registerCheck<misc::ThrowByValueCatchByReferenceCheck>(
263264
"cert-err61-cpp");

clang-tools-extra/clang-tidy/cert/CMakeLists.txt

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@ add_clang_library(clangTidyCERTModule STATIC
1414
NonTrivialTypesLibcMemoryCallsCheck.cpp
1515
ProperlySeededRandomGeneratorCheck.cpp
1616
SetLongJmpCheck.cpp
17-
StaticObjectExceptionCheck.cpp
1817
ThrownExceptionTypeCheck.cpp
1918
VariadicFunctionDefCheck.cpp
2019

clang-tools-extra/docs/ReleaseNotes.rst

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -211,6 +211,11 @@ New check aliases
211211
<clang-tidy/checks/bugprone/unchecked-string-to-number-conversion>`
212212
keeping initial check as an alias to the new one.
213213

214+
- Renamed :doc:`cert-err58-cpp <clang-tidy/checks/cert/err58-cpp>` to
215+
:doc:`bugprone-throwing-static-initialization
216+
<clang-tidy/checks/bugprone/throwing-static-initialization>`
217+
keeping initial check as an alias to the new one.
218+
214219
Changes in existing checks
215220
^^^^^^^^^^^^^^^^^^^^^^^^^^
216221

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
.. title:: clang-tidy - bugprone-throwing-static-initialization
2+
3+
bugprone-throwing-static-initialization
4+
=======================================
5+
6+
Finds all ``static`` or ``thread_local`` variable declarations where the
7+
initializer for the object may throw an exception.
8+
9+
References
10+
----------
11+
12+
This check corresponds to the CERT C++ Coding Standard rule
13+
`ERR58-CPP. Handle all exceptions thrown before main() begins executing
14+
<https://www.securecoding.cert.org/confluence/display/cplusplus/ERR58-CPP.+Handle+all+exceptions+thrown+before+main%28%29+begins+executing>`_.

clang-tools-extra/docs/clang-tidy/checks/cert/err58-cpp.rst

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,13 @@
11
.. title:: clang-tidy - cert-err58-cpp
2+
.. meta::
3+
:http-equiv=refresh: 5;URL=../bugprone/throwing-static-initialization.html
24

35
cert-err58-cpp
46
==============
57

6-
This check flags all ``static`` or ``thread_local`` variable declarations where
7-
the initializer for the object may throw an exception.
8+
The `cert-err58-cpp` check is an alias, please see
9+
`bugprone-throwing-static-initialization <../bugprone/throwing-static-initialization.html>`_
10+
for more information.
811

912
This check corresponds to the CERT C++ Coding Standard rule
1013
`ERR58-CPP. Handle all exceptions thrown before main() begins executing

clang-tools-extra/docs/clang-tidy/checks/list.rst

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -156,6 +156,7 @@ Clang-Tidy Checks
156156
:doc:`bugprone-tagged-union-member-count <bugprone/tagged-union-member-count>`,
157157
:doc:`bugprone-terminating-continue <bugprone/terminating-continue>`, "Yes"
158158
:doc:`bugprone-throw-keyword-missing <bugprone/throw-keyword-missing>`,
159+
:doc:`bugprone-throwing-static-initialization <bugprone/throwing-static-initialization>`,
159160
:doc:`bugprone-too-small-loop-variable <bugprone/too-small-loop-variable>`,
160161
:doc:`bugprone-unchecked-optional-access <bugprone/unchecked-optional-access>`,
161162
:doc:`bugprone-unchecked-string-to-number-conversion <bugprone/unchecked-string-to-number-conversion>`,
@@ -176,7 +177,6 @@ Clang-Tidy Checks
176177
:doc:`cert-env33-c <cert/env33-c>`,
177178
:doc:`cert-err33-c <cert/err33-c>`,
178179
:doc:`cert-err52-cpp <cert/err52-cpp>`,
179-
:doc:`cert-err58-cpp <cert/err58-cpp>`,
180180
:doc:`cert-err60-cpp <cert/err60-cpp>`,
181181
:doc:`cert-flp30-c <cert/flp30-c>`,
182182
:doc:`cert-mem57-cpp <cert/mem57-cpp>`,
@@ -440,6 +440,7 @@ Check aliases
440440
:doc:`cert-dcl59-cpp <cert/dcl59-cpp>`, :doc:`google-build-namespaces <google/build-namespaces>`,
441441
:doc:`cert-err09-cpp <cert/err09-cpp>`, :doc:`misc-throw-by-value-catch-by-reference <misc/throw-by-value-catch-by-reference>`,
442442
:doc:`cert-err34-c <cert/err34-c>`, :doc:`bugprone-unchecked-string-to-number-conversion <bugprone/unchecked-string-to-number-conversion>`,
443+
:doc:`cert-err58-cpp <cert/err58-cpp>`, :doc:`bugprone-throwing-static-initialization <bugprone/throwing-static-initialization>`,
443444
:doc:`cert-err61-cpp <cert/err61-cpp>`, :doc:`misc-throw-by-value-catch-by-reference <misc/throw-by-value-catch-by-reference>`,
444445
:doc:`cert-exp42-c <cert/exp42-c>`, :doc:`bugprone-suspicious-memory-comparison <bugprone/suspicious-memory-comparison>`,
445446
:doc:`cert-fio38-c <cert/fio38-c>`, :doc:`misc-non-copyable-objects <misc/non-copyable-objects>`,

0 commit comments

Comments
 (0)