================
@@ -1214,9 +1214,11 @@ class AnnotatingParser {
unsigned CommaCount = 0;
while (CurrentToken) {
- assert(!Scopes.empty());
+ if (Scopes.empty())
+ return false;
if (CurrentToken->is(tok::r_brace)) {
- assert(Scopes.back() == getScopeType(OpeningBrace));
+ if (Scopes.back() != getScopeType(OpeningBrace))
----------------
mygitljf wrote:
```bash
(base) lianjf@ubuntu:/tmp$ printf 'enum E { { ? } a }' > t.cpp
(base) lianjf@ubuntu:/tmp$
/home/lianjf/llvmPR/llvm-build-199075/bin/clang-format --style=LLVM t.cpp
clang-format:
/home/lianjf/llvmPR/llvm-src-199075/clang/lib/Format/TokenAnnotator.cpp:1219:
bool clang::format::{anonymous}::AnnotatingParser::parseBrace(): Assertion
`Scopes.back() == getScopeType(OpeningBrace)' failed.
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and
include the crash backtrace and instructions to reproduce the bug.
Stack dump:
0. Program arguments:
/home/lianjf/llvmPR/llvm-build-199075/bin/clang-format --style=LLVM t.cpp
#0 0x0000562175372c12 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int)
(/home/lianjf/llvmPR/llvm-build-199075/bin/clang-format+0xa9c12)
#1 0x000056217536f71c llvm::sys::RunSignalHandlers()
(/home/lianjf/llvmPR/llvm-build-199075/bin/clang-format+0xa671c)
#2 0x000056217536f87c SignalHandler(int, siginfo_t*, void*) Signals.cpp:0:0
#3 0x00007f123fabf520 (/lib/x86_64-linux-gnu/libc.so.6+0x42520)
#4 0x00007f123fb139fc __pthread_kill_implementation ./nptl/pthread_kill.c:44:76
#5 0x00007f123fb139fc __pthread_kill_internal ./nptl/pthread_kill.c:78:10
#6 0x00007f123fb139fc pthread_kill ./nptl/pthread_kill.c:89:10
#7 0x00007f123fabf476 gsignal ./signal/../sysdeps/posix/raise.c:27:6
#8 0x00007f123faa57f3 abort ./stdlib/abort.c:81:7
#9 0x00007f123faa571b _nl_load_domain ./intl/loadmsgcat.c:1177:9
#10 0x00007f123fab6e96 (/lib/x86_64-linux-gnu/libc.so.6+0x39e96)
#11 0x0000562175413838 clang::format::(anonymous
namespace)::AnnotatingParser::parseBrace() TokenAnnotator.cpp:0:0
#12 0x0000562175412f0f clang::format::(anonymous
namespace)::AnnotatingParser::parseBrace() TokenAnnotator.cpp:0:0
#13 0x0000562175415678 clang::format::(anonymous
namespace)::AnnotatingParser::parseLine() TokenAnnotator.cpp:0:0
#14 0x00005621754163c5
clang::format::TokenAnnotator::annotate(clang::format::AnnotatedLine&)
(/home/lianjf/llvmPR/llvm-build-199075/bin/clang-format+0x14d3c5)
#15 0x00005621753f98de clang::format::TokenAnalyzer::process(bool)
(/home/lianjf/llvmPR/llvm-build-199075/bin/clang-format+0x1308de)
#16 0x00005621753c5feb
clang::format::internal::reformat(clang::format::FormatStyle const&,
llvm::StringRef, llvm::ArrayRef<clang::tooling::Range>, unsigned int, unsigned
int, unsigned int, llvm::StringRef,
clang::format::FormattingAttemptStatus*)::'lambda6'(clang::format::Environment
const&)::operator()(clang::format::Environment const&) const (.isra.0)
Format.cpp:0:0
#17 0x00005621753c61c4
std::_Function_handler<std::pair<clang::tooling::Replacements, unsigned int>
(clang::format::Environment const&),
clang::format::internal::reformat(clang::format::FormatStyle const&,
llvm::StringRef, llvm::ArrayRef<clang::tooling::Range>, unsigned int, unsigned
int, unsigned int, llvm::StringRef,
clang::format::FormattingAttemptStatus*)::'lambda6'(clang::format::Environment
const&)>::_M_invoke(std::_Any_data const&, clang::format::Environment const&)
Format.cpp:0:0
#18 0x00005621753c20d4
clang::format::internal::reformat(clang::format::FormatStyle const&,
llvm::StringRef, llvm::ArrayRef<clang::tooling::Range>, unsigned int, unsigned
int, unsigned int, llvm::StringRef, clang::format::FormattingAttemptStatus*)
(/home/lianjf/llvmPR/llvm-build-199075/bin/clang-format+0xf90d4)
#19 0x00005621753c3f6c clang::format::reformat(clang::format::FormatStyle
const&, llvm::StringRef, llvm::ArrayRef<clang::tooling::Range>,
llvm::StringRef, clang::format::FormattingAttemptStatus*)
(/home/lianjf/llvmPR/llvm-build-199075/bin/clang-format+0xfaf6c)
#20 0x0000562175304c77 clang::format::format(llvm::StringRef, bool)
ClangFormat.cpp:0:0
#21 0x00005621752e9cd0 main
(/home/lianjf/llvmPR/llvm-build-199075/bin/clang-format+0x20cd0)
#22 0x00007f123faa6d90 __libc_start_call_main
./csu/../sysdeps/nptl/libc_start_call_main.h:58:16
#23 0x00007f123faa6e40 call_init ./csu/../csu/libc-start.c:128:20
#24 0x00007f123faa6e40 __libc_start_main ./csu/../csu/libc-start.c:379:5
#25 0x00005621752fc935 _start
(/home/lianjf/llvmPR/llvm-build-199075/bin/clang-format+0x33935)
Aborted (core dumped)
```
https://github.com/llvm/llvm-project/pull/199098
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits