<html>
    <head>
      <base href="https://llvm.org/bugs/" />
    </head>
    <body><table border="1" cellspacing="0" cellpadding="8">
        <tr>
          <th>Bug ID</th>
          <td><a class="bz_bug_link 
          bz_status_NEW "
   title="NEW --- - ExprFormattersTestCase::test_with_dwarf encounters Clang assertion failure on FreeBSD"
   href="https://llvm.org/bugs/show_bug.cgi?id=24750">24750</a>
          </td>
        </tr>

        <tr>
          <th>Summary</th>
          <td>ExprFormattersTestCase::test_with_dwarf encounters Clang assertion failure on FreeBSD
          </td>
        </tr>

        <tr>
          <th>Product</th>
          <td>lldb
          </td>
        </tr>

        <tr>
          <th>Version</th>
          <td>unspecified
          </td>
        </tr>

        <tr>
          <th>Hardware</th>
          <td>PC
          </td>
        </tr>

        <tr>
          <th>OS</th>
          <td>FreeBSD
          </td>
        </tr>

        <tr>
          <th>Status</th>
          <td>NEW
          </td>
        </tr>

        <tr>
          <th>Severity</th>
          <td>normal
          </td>
        </tr>

        <tr>
          <th>Priority</th>
          <td>P
          </td>
        </tr>

        <tr>
          <th>Component</th>
          <td>All Bugs
          </td>
        </tr>

        <tr>
          <th>Assignee</th>
          <td>lldb-dev@lists.llvm.org
          </td>
        </tr>

        <tr>
          <th>Reporter</th>
          <td>emaste@freebsd.org
          </td>
        </tr>

        <tr>
          <th>CC</th>
          <td>llvm-bugs@lists.llvm.org
          </td>
        </tr>

        <tr>
          <th>Classification</th>
          <td>Unclassified
          </td>
        </tr></table>
      <p>
        <div>
        <pre>At SVN r247024.

While running the TestFormatters.py test case on FreeBSD I see:

python2.7 SBCommandInterpreter(0x801c6ae00)::HandleCommand (command="frame
variable foo1.b.b_ref --show-types", SBCommandReturnObject(0x801c27b80):
Status:  Success Output Message:
(baz &) foo1.b.b_ref = 0x00007fffffffe1a0: {
  (int) h = 27
  (int) k = 29
}
, add_to_history=0) => 2
python2.7 SBCommandReturnObject(0x801c27b80)::GetOutput () => "(baz &)
foo1.b.b_ref = 0x00007fffffffe1a0: {
  (int) h = 27
  (int) k = 29
}
"
runCmd: frame variable foo1.b.b_ref --show-types
output: (baz &) foo1.b.b_ref = 0x00007fffffffe1a0: {
  (int) h = 27
  (int) k = 29
}

python2.7 SBCommandInterpreter(0x801c6ae00)::HandleCommand (command="expression
--show-types -- *(new foo(47))", SBCommandReturnObject(0x801c27b80),
add_to_history=0)
Assertion failed: (!Loc.isInvalid() && "Can't get file characteristic of
invalid loc!"), function getFileCharacteristic, file
../tools/clang/lib/Basic/SourceManager.cpp, line 1406.

[TestFormatters.py FAILED]

with the following backtrace:

(outer) bt
* thread #1: tid = 100593, 0x0000000805763ffa libc.so.7`thr_kill + 10 at
thr_kill.S:3, stop reason = signal SIGABRT
  * frame #0: 0x0000000805763ffa libc.so.7`thr_kill + 10 at thr_kill.S:3
    frame #1: 0x0000000805763f66 libc.so.7`__raise(s=<unavailable>) + 38 at
raise.c:51 [opt]
    frame #2: 0x0000000805762759 libc.so.7`abort + 73 at abort.c:65 [opt]
    frame #3: 0x00000008057445f1 libc.so.7`__assert(func=<unavailable>,
file=<unavailable>, line=<unavailable>, failedexpr=<unavailable>) + 81 at
assert.c:54 [opt]
    frame #4: 0x000000080246f0a2
liblldb.so.3.8`clang::SourceManager::getFileCharacteristic(clang::SourceLocation)
const + 274
    frame #5: 0x0000000802aa6fb1
liblldb.so.3.8`clang::Sema::BuildCXXNew(clang::SourceRange, bool,
clang::SourceLocation, llvm::MutableArrayRef<clang::Expr*>,
clang::SourceLocation, clang::SourceRange, clang::QualType,
clang::TypeSourceInfo*, clang::Expr*, clang::SourceRange, clang::Expr*, bool) +
2113
    frame #6: 0x0000000802aa667d
liblldb.so.3.8`clang::Sema::ActOnCXXNew(clang::SourceLocation, bool,
clang::SourceLocation, llvm::MutableArrayRef<clang::Expr*>,
clang::SourceLocation, clang::SourceRange, clang::Declarator&, clang::Expr*) +
1501
    frame #7: 0x000000080283f85b
liblldb.so.3.8`clang::Parser::ParseCXXNewExpression(bool,
clang::SourceLocation) + 3195
    frame #8: 0x0000000802826dcf
liblldb.so.3.8`clang::Parser::ParseCastExpression(bool, bool, bool&,
clang::Parser::TypeCastState) + 1839
    frame #9: 0x0000000802823910
liblldb.so.3.8`clang::Parser::ParseAssignmentExpression(clang::Parser::TypeCastState)
+ 128
    frame #10: 0x000000080282c9ec
liblldb.so.3.8`clang::Parser::ParseParenExpression(clang::Parser::ParenParseOption&,
bool, bool, clang::OpaquePtr<clang::QualType>&, clang::SourceLocation&) + 2460
    frame #11: 0x0000000802826bbc
liblldb.so.3.8`clang::Parser::ParseCastExpression(bool, bool, bool&,
clang::Parser::TypeCastState) + 1308
    frame #12: 0x00000008028267fc
liblldb.so.3.8`clang::Parser::ParseCastExpression(bool, bool, bool&,
clang::Parser::TypeCastState) + 348
    frame #13: 0x0000000802823910
liblldb.so.3.8`clang::Parser::ParseAssignmentExpression(clang::Parser::TypeCastState)
+ 128
    frame #14: 0x000000080282386e
liblldb.so.3.8`clang::Parser::ParseExpression(clang::Parser::TypeCastState) +
14
    frame #15: 0x000000080286604e
liblldb.so.3.8`clang::Parser::ParseExprStatement() + 46
    frame #16: 0x00000008028657c0
liblldb.so.3.8`clang::Parser::ParseStatementOrDeclarationAfterAttributes(llvm::SmallVector<clang::Stmt*,
32u>&, bool, clang::SourceLocation*, clang::Parser::ParsedAttributesWithRange&)
+ 3296
    frame #17: 0x0000000802864a42
liblldb.so.3.8`clang::Parser::ParseStatementOrDeclaration(llvm::SmallVector<clang::Stmt*,
32u>&, bool, clang::SourceLocation*) + 146
    frame #18: 0x000000080286c6bf
liblldb.so.3.8`clang::Parser::ParseCompoundStatementBody(bool) + 1743
    frame #19: 0x000000080286cefa
liblldb.so.3.8`clang::Parser::ParseFunctionStatementBody(clang::Decl*,
clang::Parser::ParseScope&) + 186
    frame #20: 0x00000008027e4af4
liblldb.so.3.8`clang::Parser::ParseFunctionDefinition(clang::ParsingDeclarator&,
clang::Parser::ParsedTemplateInfo const&, clang::Parser::LateParsedAttrList*) +
1972
    frame #21: 0x00000008027fc1f2
liblldb.so.3.8`clang::Parser::ParseDeclGroup(clang::ParsingDeclSpec&, unsigned
int, clang::SourceLocation*, clang::Parser::ForRangeInit*) + 2626
    frame #22: 0x00000008027e40e0
liblldb.so.3.8`clang::Parser::ParseDeclOrFunctionDefInternal(clang::Parser::ParsedAttributesWithRange&,
clang::ParsingDeclSpec&, clang::AccessSpecifier) + 672
    frame #23: 0x00000008027e3b07
liblldb.so.3.8`clang::Parser::ParseDeclarationOrFunctionDefinition(clang::Parser::ParsedAttributesWithRange&,
clang::ParsingDeclSpec*, clang::AccessSpecifier) + 407
    frame #24: 0x00000008027e2a2b
liblldb.so.3.8`clang::Parser::ParseExternalDeclaration(clang::Parser::ParsedAttributesWithRange&,
clang::ParsingDeclSpec*) + 2843
    frame #25: 0x00000008027e1dd5
liblldb.so.3.8`clang::Parser::ParseTopLevelDecl(clang::OpaquePtr<clang::DeclGroupRef>&)
+ 501
    frame #26: 0x00000008027ddd15 liblldb.so.3.8`clang::ParseAST(clang::Sema&,
bool, bool) + 517
    frame #27: 0x00000008027ddae4
liblldb.so.3.8`clang::ParseAST(clang::Preprocessor&, clang::ASTConsumer*,
clang::ASTContext&, bool, clang::TranslationUnitKind,
clang::CodeCompleteConsumer*, bool) + 196
    frame #28: 0x0000000801f85d18
liblldb.so.3.8`lldb_private::ClangExpressionParser::Parse(lldb_private::Stream&)
+ 1320
    frame #29: 0x0000000801f63313
liblldb.so.3.8`lldb_private::ClangUserExpression::Parse(lldb_private::Stream&,
lldb_private::ExecutionContext&, lldb_private::ExecutionPolicy, bool, bool) +
1571
    frame #30: 0x0000000801f649a6
liblldb.so.3.8`lldb_private::ClangUserExpression::Evaluate(lldb_private::ExecutionContext&,
lldb_private::EvaluateExpressionOptions const&, char const*, char const*,
lldb_private::SharingPtr<lldb_private::ValueObject>&, lldb_private::Error&) +
1078
    frame #31: 0x000000080205038b
liblldb.so.3.8`lldb_private::Target::EvaluateExpression(char const*,
lldb_private::StackFrame*,
lldb_private::SharingPtr<lldb_private::ValueObject>&,
lldb_private::EvaluateExpressionOptions const&) + 491
    frame #32: 0x00000008021d9905
liblldb.so.3.8`lldb_private::CommandObjectExpression::EvaluateExpression(char
const*, lldb_private::Stream*, lldb_private::Stream*,
lldb_private::CommandReturnObject*) + 437
    frame #33: 0x00000008021da014
liblldb.so.3.8`lldb_private::CommandObjectExpression::DoExecute(char const*,
lldb_private::CommandReturnObject&) + 532
    frame #34: 0x0000000801fb4cf8
liblldb.so.3.8`lldb_private::CommandObjectRaw::Execute(char const*,
lldb_private::CommandReturnObject&) + 264
    frame #35: 0x0000000801fae219
liblldb.so.3.8`lldb_private::CommandInterpreter::HandleCommand(char const*,
lldb_private::LazyBool, lldb_private::CommandReturnObject&,
lldb_private::ExecutionContext*, bool, bool) + 2377
    frame #36: 0x0000000801fb10a3
liblldb.so.3.8`lldb_private::CommandInterpreter::IOHandlerInputComplete(lldb_private::IOHandler&,
std::__1::basic_string<char, std::__1::char_traits<char>,
std::__1::allocator<char> >&) + 195
    frame #37: 0x0000000801efeb45
liblldb.so.3.8`lldb_private::IOHandlerEditline::Run() + 133
    frame #38: 0x0000000801eec0a7
liblldb.so.3.8`lldb_private::Debugger::ExecuteIOHandlers() + 167
    frame #39: 0x0000000801fb1a0e
liblldb.so.3.8`lldb_private::CommandInterpreter::RunCommandInterpreter(bool,
bool, lldb_private::CommandInterpreterRunOptions&) + 126
    frame #40: 0x0000000800e4d404
liblldb.so.3.8`lldb::SBDebugger::RunCommandInterpreter(bool, bool) + 68
    frame #41: 0x0000000000406478 lldb`Driver::MainLoop() + 2440
    frame #42: 0x0000000000406957 lldb`main + 439
    frame #43: 0x000000000040373f lldb`_start(ap=<unavailable>,
cleanup=<unavailable>) + 367 at crt1.c:78 [opt]</pre>
        </div>
      </p>
      <hr>
      <span>You are receiving this mail because:</span>
      
      <ul>
          <li>You are the assignee for the bug.</li>
      </ul>
    </body>
</html>