Skip to content

Commit b817451

Browse files
Martin Wehkingldrumm
authored andcommitted
Make default initialization explicit
Coverity (a static analysis tool) reported that the emitted 'Features' variable inside emitComputeAvailableFeatures in TableGen might be unitialized. Silence this warning by adding brackets for the default initialization. Adapt test cases to take additional brackets into account.
1 parent c52b18d commit b817451

File tree

3 files changed

+5
-5
lines changed

3 files changed

+5
-5
lines changed

llvm/test/TableGen/GlobalISelEmitter.td

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -110,7 +110,7 @@ def HasC : Predicate<"Subtarget->hasC()"> { let RecomputePerFunction = 1; }
110110

111111
// CHECK-LABEL: PredicateBitset MyTargetInstructionSelector::
112112
// CHECK-NEXT: computeAvailableModuleFeatures(const MyTargetSubtarget *Subtarget) const {
113-
// CHECK-NEXT: PredicateBitset Features;
113+
// CHECK-NEXT: PredicateBitset Features{};
114114
// CHECK-NEXT: if (Subtarget->hasA())
115115
// CHECK-NEXT: Features.set(Feature_HasABit);
116116
// CHECK-NEXT: if (Subtarget->hasB())
@@ -120,7 +120,7 @@ def HasC : Predicate<"Subtarget->hasC()"> { let RecomputePerFunction = 1; }
120120

121121
// CHECK-LABEL: PredicateBitset MyTargetInstructionSelector::
122122
// CHECK-NEXT: computeAvailableFunctionFeatures(const MyTargetSubtarget *Subtarget, const MachineFunction *MF) const {
123-
// CHECK-NEXT: PredicateBitset Features;
123+
// CHECK-NEXT: PredicateBitset Features{};
124124
// CHECK-NEXT: if (Subtarget->hasC())
125125
// CHECK-NEXT: Features.set(Feature_HasCBit);
126126
// CHECK-NEXT: return Features;

llvm/test/TableGen/GlobalISelEmitterHwModes.td

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -85,7 +85,7 @@ class I<dag OOps, dag IOps, list<dag> Pat>
8585

8686
// CHECK-LABEL: PredicateBitset MyTargetInstructionSelector::
8787
// CHECK-NEXT: computeAvailableModuleFeatures(const MyTargetSubtarget *Subtarget) const {
88-
// CHECK-NEXT: PredicateBitset Features;
88+
// CHECK-NEXT: PredicateBitset Features{};
8989
// CHECK-NEXT: if (!((Subtarget->has64())))
9090
// CHECK-NEXT: Features.set(Feature_HwMode1Bit);
9191
// CHECK-NEXT: if ((Subtarget->has64()))
@@ -95,7 +95,7 @@ class I<dag OOps, dag IOps, list<dag> Pat>
9595

9696
// CHECK-LABEL: PredicateBitset MyTargetInstructionSelector::
9797
// CHECK-NEXT: computeAvailableFunctionFeatures(const MyTargetSubtarget *Subtarget, const MachineFunction *MF) const {
98-
// CHECK-NEXT: PredicateBitset Features;
98+
// CHECK-NEXT: PredicateBitset Features{};
9999
// CHECK-NEXT: return Features;
100100
// CHECK-NEXT: }
101101

llvm/utils/TableGen/Common/SubtargetFeatureInfo.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -108,7 +108,7 @@ void SubtargetFeatureInfo::emitComputeAvailableFeatures(
108108
if (!ExtraParams.empty())
109109
OS << ", " << ExtraParams;
110110
OS << ") const {\n";
111-
OS << " PredicateBitset Features;\n";
111+
OS << " PredicateBitset Features{};\n";
112112
for (const auto &SF : SubtargetFeatures) {
113113
const SubtargetFeatureInfo &SFI = SF.second;
114114
StringRef CondStr = SFI.TheDef->getValueAsString("CondString");

0 commit comments

Comments
 (0)