Avoid loplugin:indentation after preproc conditional inclusion lines

...to not trigger (for --disable-dbgutil) at

>                         rContentAtPos.eContentAtPos = IsAttrAtPos::TableBoxFml;
> #ifdef DBG_UTIL
>                         if( RES_BOXATR_VALUE == pItem->Which() )
>                             rContentAtPos.eContentAtPos = IsAttrAtPos::TableBoxValue;
>                         else
> #endif
>                             const_cast<SwTableBoxFormula*>(static_cast<const SwTableBoxFormula*>(pItem))->PtrToBoxNm( &pTableNd->GetTable() );

(sw/source/core/crsr/crstrvl.cxx:1710)

Change-Id: I8fd5c8a1cd40450bdd8cc97057e5233a0134f044
Reviewed-on: https://gerrit.libreoffice.org/68030
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
This commit is contained in:
Stephan Bergmann 2019-02-19 21:09:29 +01:00
parent 42fd10b0ab
commit 0626e66d76
2 changed files with 14 additions and 0 deletions

View File

@ -86,10 +86,13 @@ bool Indentation::VisitCompoundStmt(CompoundStmt const* compoundStmt)
Stmt const* firstStmt = nullptr;
unsigned curLine = MAX;
unsigned prevLine = MAX;
SourceLocation prevEnd;
auto& SM = compiler.getSourceManager();
for (auto i = compoundStmt->body_begin(); i != compoundStmt->body_end(); ++i)
{
auto stmt = *i;
auto const actualPrevEnd = prevEnd;
prevEnd = compat::getEndLoc(stmt); // compute early, before below `continue`s
// these show up in macro expansions, not interesting
if (isa<NullStmt>(stmt))
@ -158,6 +161,10 @@ bool Indentation::VisitCompoundStmt(CompoundStmt const* compoundStmt)
}
else if (column != tmpColumn)
{
if (containsPreprocessingConditionalInclusion(SourceRange(
locationAfterToken(compiler.getSourceManager().getExpansionLoc(actualPrevEnd)),
compiler.getSourceManager().getExpansionLoc(compat::getBeginLoc(stmt)))))
continue;
report(DiagnosticsEngine::Warning, "statement mis-aligned compared to neighbours %0",
stmtLoc)
<< macroName;

View File

@ -35,6 +35,13 @@ void top1(int x) {
case 1: foo(); break; // 1expected-note {{measured against this one [loplugin:indentation]}}
case 2: foo(); break; // 1expected-error {{statement mis-aligned compared to neighbours [loplugin:indentation]}}
};
#if 0
if (x)
foo();
else
#endif
foo();
}
/* vim:set shiftwidth=4 softtabstop=4 expandtab cinoptions=b1,g0,N-s cinkeys+=0=break: */