[Clang] Skip adding begin source location for PragmaLoopHint'd loop when

the range start is already set

The range start could be set already in some invalid cases. Fixes
PR46336.
This commit is contained in:
Yuanfang Chen 2020-06-16 10:13:44 -07:00
parent 7caa9caa80
commit 4676cf444e
1 changed files with 5 additions and 3 deletions

View File

@ -2195,9 +2195,11 @@ StmtResult Parser::ParsePragmaLoopHint(StmtVector &Stmts,
Attrs.takeAllFrom(TempAttrs);
assert(Attrs.Range.getBegin().isInvalid() &&
"start of attribute range already set");
Attrs.Range.setBegin(StartLoc);
// Start of attribute range may already be set for some invalid input.
// See PR46336.
if (Attrs.Range.getBegin().isInvalid())
Attrs.Range.setBegin(StartLoc);
return S;
}