[PATCH] D57893: [analyzer] Fix function macro crash

Kristóf Umann via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Tue Mar 12 06:24:33 PDT 2019


Szelethus added a comment.

Some bots also break but emit a different message:

  ******************** TEST 'Clang :: Analysis/plist-macros-with-expansion.cpp' FAILED ********************
  Script:
  --
  : 'RUN: at line 1';   /b/sanitizer-x86_64-linux-bootstrap/build/llvm_build_asan/bin/clang -cc1 -internal-isystem /b/sanitizer-x86_64-linux-bootstrap/build/llvm_build_asan/lib/clang/9.0.0/include -nostdsysteminc -analyze -analyzer-constraints=range -analyzer-checker=core -verify /b/sanitizer-x86_64-linux-bootstrap/build/llvm/tools/clang/test/Analysis/plist-macros-with-expansion.cpp
  : 'RUN: at line 3';   /b/sanitizer-x86_64-linux-bootstrap/build/llvm_build_asan/bin/clang -cc1 -internal-isystem /b/sanitizer-x86_64-linux-bootstrap/build/llvm_build_asan/lib/clang/9.0.0/include -nostdsysteminc -analyze -analyzer-constraints=range -analyzer-checker=core /b/sanitizer-x86_64-linux-bootstrap/build/llvm/tools/clang/test/Analysis/plist-macros-with-expansion.cpp     -analyzer-output=plist -o /b/sanitizer-x86_64-linux-bootstrap/build/llvm_build_asan/tools/clang/test/Analysis/Output/plist-macros-with-expansion.cpp.tmp.plist    -analyzer-config expand-macros=true
  : 'RUN: at line 8';   cat /b/sanitizer-x86_64-linux-bootstrap/build/llvm_build_asan/tools/clang/test/Analysis/Output/plist-macros-with-expansion.cpp.tmp.plist | diff -u -w -I "<string>/" -I "<string>.:" -I "version"    /b/sanitizer-x86_64-linux-bootstrap/build/llvm/tools/clang/test/Analysis/Inputs/expected-plists/plist-macros-with-expansion.cpp.plist -
  : 'RUN: at line 13';   /b/sanitizer-x86_64-linux-bootstrap/build/llvm_build_asan/bin/FileCheck --input-file=/b/sanitizer-x86_64-linux-bootstrap/build/llvm_build_asan/tools/clang/test/Analysis/Output/plist-macros-with-expansion.cpp.tmp.plist /b/sanitizer-x86_64-linux-bootstrap/build/llvm/tools/clang/test/Analysis/plist-macros-with-expansion.cpp
  --
  Exit Code: 1
  
  Command Output (stderr):
  --
  /b/sanitizer-x86_64-linux-bootstrap/build/llvm/tools/clang/test/Analysis/plist-macros-with-expansion.cpp:451:7: warning: expression result unused
      1 / value; // expected-warning{{Division by zero}}
      ~ ^ ~~~~~
  /b/sanitizer-x86_64-linux-bootstrap/build/llvm/tools/clang/test/Analysis/plist-macros-with-expansion.cpp:27:8: warning: Dereference of null pointer (loaded from variable 'ptr')
    *ptr = 5; // expected-warning{{Dereference of null pointer}}
     ~~~ ^
  /b/sanitizer-x86_64-linux-bootstrap/build/llvm/tools/clang/test/Analysis/plist-macros-with-expansion.cpp:40:8: warning: Dereference of null pointer (loaded from variable 'ptr')
    *ptr = 5; // expected-warning{{Dereference of null pointer}}
     ~~~ ^
  /b/sanitizer-x86_64-linux-bootstrap/build/llvm/tools/clang/test/Analysis/plist-macros-with-expansion.cpp:60:8: warning: Dereference of null pointer (loaded from variable 'ptr')
    *ptr = 5; // expected-warning{{Dereference of null pointer}}
     ~~~ ^
  /b/sanitizer-x86_64-linux-bootstrap/build/llvm/tools/clang/test/Analysis/plist-macros-with-expansion.cpp:80:12: warning: Dereference of null pointer (loaded from variable 'a')
    DEREF(a) = 5; // expected-warning{{Dereference of null pointer}}
          ~  ^
  /b/sanitizer-x86_64-linux-bootstrap/build/llvm/tools/clang/test/Analysis/plist-macros-with-expansion.cpp:99:8: warning: Dereference of null pointer (loaded from variable 'ptr')
    *ptr = 5; // expected-warning{{Dereference of null pointer}}
     ~~~ ^
  /b/sanitizer-x86_64-linux-bootstrap/build/llvm/tools/clang/test/Analysis/plist-macros-with-expansion.cpp:116:8: warning: Dereference of null pointer (loaded from variable 'ptr')
    *ptr = 5; // expected-warning{{Dereference of null pointer}}
     ~~~ ^
  /b/sanitizer-x86_64-linux-bootstrap/build/llvm/tools/clang/test/Analysis/plist-macros-with-expansion.cpp:136:8: warning: Dereference of null pointer (loaded from variable 'ptr')
    *ptr = 5; // expected-warning{{Dereference of null pointer}}
     ~~~ ^
  /b/sanitizer-x86_64-linux-bootstrap/build/llvm/tools/clang/test/Analysis/plist-macros-with-expansion.cpp:163:6: warning: Dereference of null pointer (loaded from variable 'a')
    *a = 5; // expected-warning{{Dereference of null pointer}}
     ~ ^
  /b/sanitizer-x86_64-linux-bootstrap/build/llvm/tools/clang/test/Analysis/plist-macros-with-expansion.cpp:172:6: warning: Dereference of null pointer (loaded from variable 'a')
    *a = 5; // expected-warning{{Dereference of null pointer}}
     ~ ^
  /b/sanitizer-x86_64-linux-bootstrap/build/llvm/tools/clang/test/Analysis/plist-macros-with-expansion.cpp:181:6: warning: Dereference of null pointer (loaded from variable 'a')
    *a = 5; // expected-warning{{Dereference of null pointer}}
     ~ ^
  /b/sanitizer-x86_64-linux-bootstrap/build/llvm/tools/clang/test/Analysis/plist-macros-with-expansion.cpp:195:6: warning: Dereference of null pointer (loaded from variable 'a')
    *a = 5; // expected-warning{{Dereference of null pointer}}
     ~ ^
  /b/sanitizer-x86_64-linux-bootstrap/build/llvm/tools/clang/test/Analysis/plist-macros-with-expansion.cpp:209:6: warning: Dereference of null pointer (loaded from variable 'a')
    *a = 5; // expected-warning{{Dereference of null pointer}}
     ~ ^
  /b/sanitizer-x86_64-linux-bootstrap/build/llvm/tools/clang/test/Analysis/plist-macros-with-expansion.cpp:221:6: warning: Dereference of null pointer (loaded from variable 'a')
    *a = 5; // expected-warning{{Dereference of null pointer}}
     ~ ^
  /b/sanitizer-x86_64-linux-bootstrap/build/llvm/tools/clang/test/Analysis/plist-macros-with-expansion.cpp:236:8: warning: Dereference of null pointer (loaded from variable 'ptr')
    *ptr = 5; // expected-warning{{Dereference of null pointer}}
     ~~~ ^
  /b/sanitizer-x86_64-linux-bootstrap/build/llvm/tools/clang/test/Analysis/plist-macros-with-expansion.cpp:253:10: warning: Dereference of null pointer (loaded from variable 'ptr')
      *ptr = 5;
       ~~~ ^
  /b/sanitizer-x86_64-linux-bootstrap/build/llvm/tools/clang/test/Analysis/plist-macros-with-expansion.cpp:243:3: note: expanded from macro 'PASTE_CODE'
    code
    ^~~~
  /b/sanitizer-x86_64-linux-bootstrap/build/llvm/tools/clang/test/Analysis/plist-macros-with-expansion.cpp:271:8: warning: Dereference of null pointer (loaded from variable 'ptr')
    *ptr = 5; // expected-warning{{Dereference of null pointer}}
     ~~~ ^
  /b/sanitizer-x86_64-linux-bootstrap/build/llvm/tools/clang/test/Analysis/plist-macros-with-expansion.cpp:285:8: warning: Dereference of null pointer (loaded from variable 'ptr')
    *ptr = 5; // expected-warning{{Dereference of null pointer}}
     ~~~ ^
  /b/sanitizer-x86_64-linux-bootstrap/build/llvm/tools/clang/test/Analysis/plist-macros-with-expansion.cpp:297:8: warning: Dereference of null pointer (loaded from variable 'ptr')
    *ptr = 5; // expected-warning{{Dereference of null pointer}}
     ~~~ ^
  /b/sanitizer-x86_64-linux-bootstrap/build/llvm/tools/clang/test/Analysis/plist-macros-with-expansion.cpp:317:8: warning: Dereference of null pointer (loaded from variable 'ptr')
    *ptr = 5; // expected-warning{{Dereference of null pointer}}
     ~~~ ^
  /b/sanitizer-x86_64-linux-bootstrap/build/llvm/tools/clang/test/Analysis/plist-macros-with-expansion.cpp:328:8: warning: Dereference of null pointer (loaded from variable 'ptr')
    *ptr = 5; // expected-warning{{Dereference of null pointer}}
     ~~~ ^
  /b/sanitizer-x86_64-linux-bootstrap/build/llvm/tools/clang/test/Analysis/plist-macros-with-expansion.cpp:345:8: warning: Dereference of null pointer (loaded from variable 'ptr')
    *ptr = 5; // expected-warning{{Dereference of null pointer}}
     ~~~ ^
  /b/sanitizer-x86_64-linux-bootstrap/build/llvm/tools/clang/test/Analysis/plist-macros-with-expansion.cpp:354:6: warning: Dereference of null pointer (loaded from variable 'a')
    *a = 5; // expected-warning{{Dereference of null pointer}}
     ~ ^
  /b/sanitizer-x86_64-linux-bootstrap/build/llvm/tools/clang/test/Analysis/plist-macros-with-expansion.cpp:367:8: warning: Dereference of null pointer (loaded from variable 'ptr')
    *ptr = 5; // expected-warning{{Dereference of null pointer}}
     ~~~ ^
  /b/sanitizer-x86_64-linux-bootstrap/build/llvm/tools/clang/test/Analysis/plist-macros-with-expansion.cpp:376:6: warning: Dereference of null pointer (loaded from variable 'a')
    *a = 5; // expected-warning{{Dereference of null pointer}}
     ~ ^
  /b/sanitizer-x86_64-linux-bootstrap/build/llvm/tools/clang/test/Analysis/plist-macros-with-expansion.cpp:418:3: warning: Division by zero
    EUCLIDEAN_ALGORITHM(A, B) // expected-warning{{Division by zero}}
    ^~~~~~~~~~~~~~~~~~~~~~~~~
  /b/sanitizer-x86_64-linux-bootstrap/build/llvm/tools/clang/test/Analysis/plist-macros-with-expansion.cpp:415:12: note: expanded from macro 'EUCLIDEAN_ALGORITHM'
    RETURN B / (B - B) SEMICOLON
           ~~^~~~~~~~~
  /b/sanitizer-x86_64-linux-bootstrap/build/llvm/tools/clang/test/Analysis/plist-macros-with-expansion.cpp:439:8: warning: Dereference of null pointer (loaded from variable 'ptr')
    *ptr = 5; // expected-warning{{Dereference of null pointer}}
     ~~~ ^
  /b/sanitizer-x86_64-linux-bootstrap/build/llvm/tools/clang/test/Analysis/plist-macros-with-expansion.cpp:451:7: warning: Division by zero
      1 / value; // expected-warning{{Division by zero}}
      ~~^~~~~~~
  /b/sanitizer-x86_64-linux-bootstrap/build/llvm/tools/clang/test/Analysis/plist-macros-with-expansion.cpp:459:35: warning: Division by zero
  void useZeroApplier1() { (void)(1 / foo()); } // expected-warning{{Division by zero}}
                                  ~~^~~~~~~
  /b/sanitizer-x86_64-linux-bootstrap/build/llvm/tools/clang/test/Analysis/plist-macros-with-expansion.cpp:468:35: warning: Division by zero
  void useZeroApplier2() { (void)(1 / bar()); } // expected-warning{{Division by zero}}
                                  ~~^~~~~~~
  =================================================================
  ==53065==ERROR: AddressSanitizer: heap-buffer-overflow on address 0x6180000037d8 at pc 0x000009ecdcf8 bp 0x7ffeb2611d50 sp 0x7ffeb2611d48
  READ of size 2 at 0x6180000037d8 thread T0
      #0 0x9ecdcf7 in is /b/sanitizer-x86_64-linux-bootstrap/build/llvm/tools/clang/include/clang/Lex/Token.h:94:44
      #1 0x9ecdcf7 in getMacroNameAndPrintExpansion((anonymous namespace)::TokenPrinter&, clang::SourceLocation, clang::Preprocessor const&, (anonymous namespace)::MacroArgMap const&, llvm::SmallPtrSet<clang::IdentifierInfo*, 8u>&) /b/sanitizer-x86_64-linux-bootstrap/build/llvm/tools/clang/lib/StaticAnalyzer/Core/PlistDiagnostics.cpp:903
      #2 0x9ebaddc in getExpandedMacro /b/sanitizer-x86_64-linux-bootstrap/build/llvm/tools/clang/lib/StaticAnalyzer/Core/PlistDiagnostics.cpp:845:13
      #3 0x9ebaddc in ReportMacroExpansions /b/sanitizer-x86_64-linux-bootstrap/build/llvm/tools/clang/lib/StaticAnalyzer/Core/PlistDiagnostics.cpp:344
      #4 0x9ebaddc in printBugPath /b/sanitizer-x86_64-linux-bootstrap/build/llvm/tools/clang/lib/StaticAnalyzer/Core/PlistDiagnostics.cpp:479
      #5 0x9ebaddc in (anonymous namespace)::PlistDiagnostics::FlushDiagnosticsImpl(std::__1::vector<clang::ento::PathDiagnostic const*, std::__1::allocator<clang::ento::PathDiagnostic const*> >&, clang::ento::PathDiagnosticConsumer::FilesMade*) /b/sanitizer-x86_64-linux-bootstrap/build/llvm/tools/clang/lib/StaticAnalyzer/Core/PlistDiagnostics.cpp:583
      #6 0x9ea5aec in clang::ento::PathDiagnosticConsumer::FlushDiagnostics(clang::ento::PathDiagnosticConsumer::FilesMade*) /b/sanitizer-x86_64-linux-bootstrap/build/llvm/tools/clang/lib/StaticAnalyzer/Core/PathDiagnostic.cpp:483:3
      #7 0x9ca1a0f in FlushDiagnostics /b/sanitizer-x86_64-linux-bootstrap/build/llvm/tools/clang/lib/StaticAnalyzer/Core/AnalysisManager.cpp:59:11
      #8 0x9ca1a0f in clang::ento::AnalysisManager::~AnalysisManager() /b/sanitizer-x86_64-linux-bootstrap/build/llvm/tools/clang/lib/StaticAnalyzer/Core/AnalysisManager.cpp:47
      #9 0x9ca221d in clang::ento::AnalysisManager::~AnalysisManager() /b/sanitizer-x86_64-linux-bootstrap/build/llvm/tools/clang/lib/StaticAnalyzer/Core/AnalysisManager.cpp:46:37
      #10 0x9603b7b in operator() /b/sanitizer-x86_64-linux-bootstrap/build/libcxx_build_asan/include/c++/v1/memory:2338:5
      #11 0x9603b7b in reset /b/sanitizer-x86_64-linux-bootstrap/build/libcxx_build_asan/include/c++/v1/memory:2651
      #12 0x9603b7b in (anonymous namespace)::AnalysisConsumer::HandleTranslationUnit(clang::ASTContext&) /b/sanitizer-x86_64-linux-bootstrap/build/llvm/tools/clang/lib/StaticAnalyzer/Frontend/AnalysisConsumer.cpp:602
      #13 0xa026ee2 in clang::ParseAST(clang::Sema&, bool, bool) /b/sanitizer-x86_64-linux-bootstrap/build/llvm/tools/clang/lib/Parse/ParseAST.cpp:169:13
      #14 0x73752ad in clang::FrontendAction::Execute() /b/sanitizer-x86_64-linux-bootstrap/build/llvm/tools/clang/lib/Frontend/FrontendAction.cpp:934:8
      #15 0x726050a in clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) /b/sanitizer-x86_64-linux-bootstrap/build/llvm/tools/clang/lib/Frontend/CompilerInstance.cpp:952:11
      #16 0x75a61be in clang::ExecuteCompilerInvocation(clang::CompilerInstance*) /b/sanitizer-x86_64-linux-bootstrap/build/llvm/tools/clang/lib/FrontendTool/ExecuteCompilerInvocation.cpp:271:25
      #17 0xc658d1 in cc1_main(llvm::ArrayRef<char const*>, char const*, void*) /b/sanitizer-x86_64-linux-bootstrap/build/llvm/tools/clang/tools/driver/cc1_main.cpp:218:13
      #18 0xc5dd4f in ExecuteCC1Tool /b/sanitizer-x86_64-linux-bootstrap/build/llvm/tools/clang/tools/driver/driver.cpp:309:12
      #19 0xc5dd4f in main /b/sanitizer-x86_64-linux-bootstrap/build/llvm/tools/clang/tools/driver/driver.cpp:381
      #20 0x7fa292e942e0 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x202e0)
      #21 0xb8c569 in _start (/b/sanitizer-x86_64-linux-bootstrap/build/llvm_build_asan/bin/clang-9+0xb8c569)
  
  0x6180000037d8 is located 16 bytes to the right of 840-byte region [0x618000003480,0x6180000037c8)
  allocated by thread T0 here:
      #0 0xc1d580 in realloc /b/sanitizer-x86_64-linux-bootstrap/build/llvm/projects/compiler-rt/lib/asan/asan_malloc_linux.cc:164
      #1 0x5d62737 in safe_realloc /b/sanitizer-x86_64-linux-bootstrap/build/llvm/include/llvm/Support/MemAlloc.h:41:18
      #2 0x5d62737 in llvm::SmallVectorBase::grow_pod(void*, unsigned long, unsigned long) /b/sanitizer-x86_64-linux-bootstrap/build/llvm/lib/Support/SmallVector.cpp:60
      #3 0xca71510 in grow_pod /b/sanitizer-x86_64-linux-bootstrap/build/llvm/include/llvm/ADT/SmallVector.h:98:22
      #4 0xca71510 in grow /b/sanitizer-x86_64-linux-bootstrap/build/llvm/include/llvm/ADT/SmallVector.h:299
      #5 0xca71510 in push_back /b/sanitizer-x86_64-linux-bootstrap/build/llvm/include/llvm/ADT/SmallVector.h:304
      #6 0xca71510 in AddTokenToBody /b/sanitizer-x86_64-linux-bootstrap/build/llvm/tools/clang/include/clang/Lex/MacroInfo.h:252
      #7 0xca71510 in clang::Preprocessor::ReadOptionalMacroParameterListAndBody(clang::Token const&, bool) /b/sanitizer-x86_64-linux-bootstrap/build/llvm/tools/clang/lib/Lex/PPDirectives.cpp:2456
      #8 0xca3f920 in clang::Preprocessor::HandleDefineDirective(clang::Token&, bool) /b/sanitizer-x86_64-linux-bootstrap/build/llvm/tools/clang/lib/Lex/PPDirectives.cpp:2600:25
      #9 0xca56434 in clang::Preprocessor::HandleDirective(clang::Token&) /b/sanitizer-x86_64-linux-bootstrap/build/llvm/tools/clang/lib/Lex/PPDirectives.cpp:953:14
      #10 0xc9b1109 in clang::Lexer::LexTokenInternal(clang::Token&, bool) /b/sanitizer-x86_64-linux-bootstrap/build/llvm/tools/clang/lib/Lex/Lexer.cpp:3931:7
      #11 0xc9a82be in clang::Lexer::Lex(clang::Token&) /b/sanitizer-x86_64-linux-bootstrap/build/llvm/tools/clang/lib/Lex/Lexer.cpp:3152:24
      #12 0xcb13b79 in clang::Preprocessor::Lex(clang::Token&) /b/sanitizer-x86_64-linux-bootstrap/build/llvm/tools/clang/lib/Lex/Preprocessor.cpp:870:33
      #13 0xa032d0d in clang::Parser::ConsumeBrace() /b/sanitizer-x86_64-linux-bootstrap/build/llvm/tools/clang/include/clang/Parse/Parser.h:585:8
      #14 0xa051458 in clang::BalancedDelimiterTracker::consumeClose() /b/sanitizer-x86_64-linux-bootstrap/build/llvm/tools/clang/include/clang/Parse/RAIIObjectsForParser.h:429:18
      #15 0xa2acd49 in clang::Parser::ParseCompoundStatementBody(bool) /b/sanitizer-x86_64-linux-bootstrap/build/llvm/tools/clang/lib/Parse/ParseStmt.cpp:1103:10
      #16 0xa2b01a4 in clang::Parser::ParseFunctionStatementBody(clang::Decl*, clang::Parser::ParseScope&) /b/sanitizer-x86_64-linux-bootstrap/build/llvm/tools/clang/lib/Parse/ParseStmt.cpp:2067:21
      #17 0xa048e50 in clang::Parser::ParseFunctionDefinition(clang::ParsingDeclarator&, clang::Parser::ParsedTemplateInfo const&, clang::Parser::LateParsedAttrList*) /b/sanitizer-x86_64-linux-bootstrap/build/llvm/tools/clang/lib/Parse/Parser.cpp:1246:10
      #18 0xa0ab30e in clang::Parser::ParseDeclGroup(clang::ParsingDeclSpec&, clang::DeclaratorContext, clang::SourceLocation*, clang::Parser::ForRangeInit*) /b/sanitizer-x86_64-linux-bootstrap/build/llvm/tools/clang/lib/Parse/ParseDecl.cpp:2001:11
      #19 0xa045c96 in clang::Parser::ParseDeclOrFunctionDefInternal(clang::Parser::ParsedAttributesWithRange&, clang::ParsingDeclSpec&, clang::AccessSpecifier) /b/sanitizer-x86_64-linux-bootstrap/build/llvm/tools/clang/lib/Parse/Parser.cpp:1015:10
      #20 0xa044a23 in clang::Parser::ParseDeclarationOrFunctionDefinition(clang::Parser::ParsedAttributesWithRange&, clang::ParsingDeclSpec*, clang::AccessSpecifier) /b/sanitizer-x86_64-linux-bootstrap/build/llvm/tools/clang/lib/Parse/Parser.cpp:1031:12
      #21 0xa03e7be in clang::Parser::ParseExternalDeclaration(clang::Parser::ParsedAttributesWithRange&, clang::ParsingDeclSpec*) /b/sanitizer-x86_64-linux-bootstrap/build/llvm/tools/clang/lib/Parse/Parser.cpp:855:12
      #22 0xa03ab0d in clang::Parser::ParseTopLevelDecl(clang::OpaquePtr<clang::DeclGroupRef>&) /b/sanitizer-x86_64-linux-bootstrap/build/llvm/tools/clang/lib/Parse/Parser.cpp:609:12
      #23 0xa026dd9 in clang::ParseAST(clang::Sema&, bool, bool) /b/sanitizer-x86_64-linux-bootstrap/build/llvm/tools/clang/lib/Parse/ParseAST.cpp:156:20
      #24 0x73752ad in clang::FrontendAction::Execute() /b/sanitizer-x86_64-linux-bootstrap/build/llvm/tools/clang/lib/Frontend/FrontendAction.cpp:934:8
      #25 0x726050a in clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) /b/sanitizer-x86_64-linux-bootstrap/build/llvm/tools/clang/lib/Frontend/CompilerInstance.cpp:952:11
      #26 0x75a61be in clang::ExecuteCompilerInvocation(clang::CompilerInstance*) /b/sanitizer-x86_64-linux-bootstrap/build/llvm/tools/clang/lib/FrontendTool/ExecuteCompilerInvocation.cpp:271:25
      #27 0xc658d1 in cc1_main(llvm::ArrayRef<char const*>, char const*, void*) /b/sanitizer-x86_64-linux-bootstrap/build/llvm/tools/clang/tools/driver/cc1_main.cpp:218:13
      #28 0xc5dd4f in ExecuteCC1Tool /b/sanitizer-x86_64-linux-bootstrap/build/llvm/tools/clang/tools/driver/driver.cpp:309:12
      #29 0xc5dd4f in main /b/sanitizer-x86_64-linux-bootstrap/build/llvm/tools/clang/tools/driver/driver.cpp:381
      #30 0x7fa292e942e0 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x202e0)
  
  SUMMARY: AddressSanitizer: heap-buffer-overflow /b/sanitizer-x86_64-linux-bootstrap/build/llvm/tools/clang/include/clang/Lex/Token.h:94:44 in is
  Shadow bytes around the buggy address:
    0x0c307fff86a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    0x0c307fff86b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    0x0c307fff86c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    0x0c307fff86d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    0x0c307fff86e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  =>0x0c307fff86f0: 00 00 00 00 00 00 00 00 00 fa fa[fa]fa fa fa fa
    0x0c307fff8700: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
    0x0c307fff8710: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    0x0c307fff8720: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    0x0c307fff8730: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    0x0c307fff8740: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  Shadow byte legend (one shadow byte represents 8 application bytes):
    Addressable:           00
    Partially addressable: 01 02 03 04 05 06 07 
    Heap left redzone:       fa
    Freed heap region:       fd
    Stack left redzone:      f1
    Stack mid redzone:       f2
    Stack right redzone:     f3
    Stack after return:      f5
    Stack use after scope:   f8
    Global redzone:          f9
    Global init order:       f6
    Poisoned by user:        f7
    Container overflow:      fc
    Array cookie:            ac
    Intra object redzone:    bb
    ASan internal:           fe
    Left alloca redzone:     ca
    Right alloca redzone:    cb
    Shadow gap:              cc
  ==53065==ABORTING


Repository:
  rC Clang

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D57893/new/

https://reviews.llvm.org/D57893





More information about the cfe-commits mailing list