Lines Matching defs:use
663 /// uninitialized use of a variable.
664 static void DiagUninitUse(Sema &S, const VarDecl *VD, const UninitUse &Use,
668 switch (Use.getKind()) {
670 S.Diag(Use.getUser()->getLocStart(), diag::warn_uninit_var)
672 << Use.getUser()->getSourceRange();
679 << (Use.getKind() == UninitUse::AfterDecl ? 4 : 5)
682 S.Diag(Use.getUser()->getLocStart(), diag::note_uninit_var_use)
683 << IsCapturedByBlock << Use.getUser()->getSourceRange();
693 // Diagnose each branch which leads to a sometimes-uninitialized use.
694 for (UninitUse::branch_iterator I = Use.branch_begin(), E = Use.branch_end();
696 assert(Use.getKind() == UninitUse::Sometimes);
698 const Expr *User = Use.getUser();
781 // The use occurs if a range-based for loop's body never executes.
826 S.Diag(Use.getUser()->getLocStart(), diag::warn_maybe_uninit_var)
828 << Use.getUser()->getSourceRange();
833 /// emitted for particular types of uses. Returns true if the use was diagnosed
834 /// as a warning. If a particular use is one we omit warnings for, returns
837 const UninitUse &Use,
840 if (const DeclRefExpr *DRE = dyn_cast<DeclRefExpr>(Use.getUser())) {
866 DiagUninitUse(S, VD, Use, false);
868 const BlockExpr *BE = cast<BlockExpr>(Use.getUser());
874 DiagUninitUse(S, VD, Use, true);
877 // Report where the variable was declared when the use wasn't within
1068 // for generalized attributes. Once could use pragmas to silence the warning,
1240 // Sort by first use so that we emit the warnings in a deterministic order.
1251 // FIXME: Should we use a common classification enum and the same set of
1277 // properties. We can only be 100% sure of a repeated use in certain cases,
1314 for (const auto &Use : Uses) {
1315 if (Use.getUseExpr() == FirstRead)
1317 S.Diag(Use.getUseExpr()->getLocStart(),
1319 << Use.getUseExpr()->getSourceRange();
1351 const UninitUse &use) override {
1352 getUses(vd).getPointer()->push_back(use);
1392 UninitUse Use = hasSelfInit ? UninitUse(U.getUser(), false) : U;
1394 if (DiagnoseUninitializedUse(S, vd, Use))