================
@@ -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

Reply via email to