Skip to content

Commit db4c7ad

Browse files
committed
Suppress false-positive -Wuninitialized warnings in the constructor of a
templated but non-template class.
1 parent 70d1425 commit db4c7ad

File tree

2 files changed

+10
-1
lines changed

2 files changed

+10
-1
lines changed

clang/lib/Sema/SemaDeclCXX.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3807,7 +3807,7 @@ namespace {
38073807

38083808
const CXXRecordDecl *RD = Constructor->getParent();
38093809

3810-
if (RD->getDescribedClassTemplate())
3810+
if (RD->isDependentContext())
38113811
return;
38123812

38133813
// Holds fields that are uninitialized.

clang/test/SemaCXX/uninitialized.cpp

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1449,3 +1449,12 @@ void if_switch_init_stmt(int k) {
14491449

14501450
switch (int n; (n == k || k > 5)) {} // expected-warning {{uninitialized}} expected-note {{initialize}} expected-warning {{boolean}}
14511451
}
1452+
1453+
template<typename T> struct Outer {
1454+
struct Inner {
1455+
int a = 1;
1456+
int b;
1457+
Inner() : b(a) {}
1458+
};
1459+
};
1460+
Outer<int>::Inner outerinner;

0 commit comments

Comments
 (0)