aboutsummaryrefslogtreecommitdiff
path: root/llvm/unittests/Support/CommandLineTest.cpp
diff options
context:
space:
mode:
authorMehdi Amini <joker.eph@gmail.com>2021-07-15 23:52:44 +0000
committerMehdi Amini <joker.eph@gmail.com>2021-07-16 06:54:26 +0000
commitaf9321739b20becf170e6bb5060b8d780e1dc8dd (patch)
treeb6102c00e02d67904fab6a4638b0f0e3d1afca9b /llvm/unittests/Support/CommandLineTest.cpp
parent20113d66c7bfe935cf2b300fc6cc3ef996bb847d (diff)
downloadllvm-af9321739b20becf170e6bb5060b8d780e1dc8dd.zip
llvm-af9321739b20becf170e6bb5060b8d780e1dc8dd.tar.gz
llvm-af9321739b20becf170e6bb5060b8d780e1dc8dd.tar.bz2
Use ManagedStatic and lazy initialization of cl::opt in libSupport to make it free of global initializer
We can build it with -Werror=global-constructors now. This helps in situation where libSupport is embedded as a shared library, potential with dlopen/dlclose scenario, and when command-line parsing or other facilities may not be involved. Avoiding the implicit construction of these cl::opt can avoid double-registration issues and other kind of behavior. Reviewed By: lattner, jpienaar Differential Revision: https://reviews.llvm.org/D105959
Diffstat (limited to 'llvm/unittests/Support/CommandLineTest.cpp')
-rw-r--r--llvm/unittests/Support/CommandLineTest.cpp20
1 files changed, 10 insertions, 10 deletions
diff --git a/llvm/unittests/Support/CommandLineTest.cpp b/llvm/unittests/Support/CommandLineTest.cpp
index 7d88046..a0352bc 100644
--- a/llvm/unittests/Support/CommandLineTest.cpp
+++ b/llvm/unittests/Support/CommandLineTest.cpp
@@ -110,7 +110,7 @@ TEST(CommandLineTest, ModifyExisitingOption) {
ASSERT_NE(Retrieved->Categories.end(),
find_if(Retrieved->Categories,
[&](const llvm::cl::OptionCategory *Cat) {
- return Cat == &cl::GeneralCategory;
+ return Cat == &cl::getGeneralCategory();
}))
<< "Incorrect default option category.";
@@ -152,10 +152,10 @@ TEST(CommandLineTest, UseOptionCategory) {
TEST(CommandLineTest, UseMultipleCategories) {
StackOption<int> TestOption2("test-option2", cl::cat(TestCategory),
- cl::cat(cl::GeneralCategory),
- cl::cat(cl::GeneralCategory));
+ cl::cat(cl::getGeneralCategory()),
+ cl::cat(cl::getGeneralCategory()));
- // Make sure cl::GeneralCategory wasn't added twice.
+ // Make sure cl::getGeneralCategory() wasn't added twice.
ASSERT_EQ(TestOption2.Categories.size(), 2U);
ASSERT_NE(TestOption2.Categories.end(),
@@ -166,9 +166,9 @@ TEST(CommandLineTest, UseMultipleCategories) {
<< "Failed to assign Option Category.";
ASSERT_NE(TestOption2.Categories.end(),
find_if(TestOption2.Categories,
- [&](const llvm::cl::OptionCategory *Cat) {
- return Cat == &cl::GeneralCategory;
- }))
+ [&](const llvm::cl::OptionCategory *Cat) {
+ return Cat == &cl::getGeneralCategory();
+ }))
<< "Failed to assign General Category.";
cl::OptionCategory AnotherCategory("Additional test Options", "Description");
@@ -176,9 +176,9 @@ TEST(CommandLineTest, UseMultipleCategories) {
cl::cat(AnotherCategory));
ASSERT_EQ(TestOption.Categories.end(),
find_if(TestOption.Categories,
- [&](const llvm::cl::OptionCategory *Cat) {
- return Cat == &cl::GeneralCategory;
- }))
+ [&](const llvm::cl::OptionCategory *Cat) {
+ return Cat == &cl::getGeneralCategory();
+ }))
<< "Failed to remove General Category.";
ASSERT_NE(TestOption.Categories.end(),
find_if(TestOption.Categories,