[cfe-dev] Problems with Clang since upgrading compiler to Visual Studio 2015

Kim via cfe-dev cfe-dev at lists.llvm.org
Tue Feb 28 00:29:02 PST 2017


Hi guys,

I'm having an issue with clang/llvm since I upgraded my compiler from
VS2013 to VS2015. I'm invoking clang programmatically to compile C++ source
files and up till now it has worked fine but since the upgrade and
recompiling all the clang/llvm libraries I'm getting some errors deep
inside the clang/llvm source without having changed any code on my end. The
problem I'm facing right now is an assertion being triggered in an llvm
class:

Assertion failed: HasHungOffUses && "alloc must have hung off uses", file
F:\Cla
nggit\llvm\lib\IR\User.cpp, line 44

Here is the complete call stack up till the assertion:

ucrtbased.dll!___threadid () Unknown
  ucrtbased.dll!___acrt_report_runtime_error () Unknown
  ucrtbased.dll!_abort () Unknown
  ucrtbased.dll!__crt_char_traits<char>::tcsncat_s<char * &,unsigned int
const &,char const * const &,unsigned int const >(char * &,unsigned int
const &,char const * const &,unsigned int const &&) Unknown
  ucrtbased.dll!__get_wide_winmain_command_line () Unknown
  ucrtbased.dll!__get_wide_winmain_command_line () Unknown
  ucrtbased.dll!__wassert () Unknown
  Plugin_Clang_d.dll!llvm::User::allocHungoffUses(unsigned int N, bool
IsPhi) Line 44 C++
> Plugin_Clang_d.dll!llvm::Function::allocHungoffUselist() Line 1234 C++
  Plugin_Clang_d.dll!llvm::Function::setHungoffOperand<0>(llvm::Constant *
C) Line 1247 C++
  Plugin_Clang_d.dll!llvm::Function::setPersonalityFn(llvm::Constant * Fn)
Line 1205 C++
  Plugin_Clang_d.dll!clang::CodeGen::CodeGenFunction::getInvokeDestImpl()
Line 722 C++
  Plugin_Clang_d.dll!clang::CodeGen::CodeGenFunction::getInvokeDest() Line
1412 C++
  Plugin_Clang_d.dll!clang::CodeGen::CodeGenFunction::EmitCall(const
clang::CodeGen::CGFunctionInfo & CallInfo, const clang::CodeGen::CGCallee &
Callee, clang::CodeGen::ReturnValueSlot ReturnValue, const
clang::CodeGen::CallArgList & CallArgs, llvm::Instruction * * callOrInvoke)
Line 4090 C++
  Plugin_Clang_d.dll!clang::CodeGen::CodeGenFunction::EmitCXXMemberOrOperatorCall(const
clang::CXXMethodDecl * MD, const clang::CodeGen::CGCallee & Callee,
clang::CodeGen::ReturnValueSlot ReturnValue, llvm::Value * This,
llvm::Value * ImplicitParam, clang::QualType ImplicitParamTy, const
clang::CallExpr * CE, clang::CodeGen::CallArgList * RtlArgs) Line 91 C++
  Plugin_Clang_d.dll!clang::CodeGen::CodeGenFunction::EmitCXXMemberOrOperatorMemberCallExpr(const
clang::CallExpr * CE, const clang::CXXMethodDecl * MD,
clang::CodeGen::ReturnValueSlot ReturnValue, bool HasQualifier,
clang::NestedNameSpecifier * Qualifier, bool IsArrow, const clang::Expr *
Base) Line 385 C++
  Plugin_Clang_d.dll!clang::CodeGen::CodeGenFunction::EmitCXXMemberCallExpr(const
clang::CXXMemberCallExpr * CE, clang::CodeGen::ReturnValueSlot ReturnValue)
Line 188 C++
  Plugin_Clang_d.dll!clang::CodeGen::CodeGenFunction::EmitCallExpr(const
clang::CallExpr * E, clang::CodeGen::ReturnValueSlot ReturnValue) Line 3870
C++
  Plugin_Clang_d.dll!`anonymous
namespace'::ScalarExprEmitter::VisitCallExpr(const clang::CallExpr * E)
Line 405 C++
  Plugin_Clang_d.dll!clang::StmtVisitorBase<clang::make_ptr,`anonymous
namespace'::ScalarExprEmitter,llvm::Value
*>::VisitCXXMemberCallExpr(clang::CXXMemberCallExpr * S) Line 339 C++
  Plugin_Clang_d.dll!clang::StmtVisitorBase<clang::make_ptr,`anonymous
namespace'::ScalarExprEmitter,llvm::Value *>::Visit(clang::Stmt * S) Line
339 C++
  Plugin_Clang_d.dll!`anonymous
namespace'::ScalarExprEmitter::Visit(clang::Expr * E) Line 260 C++
  Plugin_Clang_d.dll!`anonymous
namespace'::ScalarExprEmitter::VisitCastExpr(clang::CastExpr * CE) Line 1501
C++
  Plugin_Clang_d.dll!clang::StmtVisitorBase<clang::make_ptr,`anonymous
namespace'::ScalarExprEmitter,llvm::Value
*>::VisitImplicitCastExpr(clang::ImplicitCastExpr * S) Line 423 C++
  Plugin_Clang_d.dll!clang::StmtVisitorBase<clang::make_ptr,`anonymous
namespace'::ScalarExprEmitter,llvm::Value *>::Visit(clang::Stmt * S) Line
423 C++
  Plugin_Clang_d.dll!`anonymous
namespace'::ScalarExprEmitter::Visit(clang::Expr * E) Line 260 C++
  Plugin_Clang_d.dll!clang::CodeGen::CodeGenFunction::EmitScalarExpr(const
clang::Expr * E, bool IgnoreResultAssign) Line 3621 C++
  Plugin_Clang_d.dll!clang::CodeGen::CodeGenFunction::EvaluateExprAsBool(const
clang::Expr * E) Line 123 C++
  Plugin_Clang_d.dll!clang::CodeGen::CodeGenFunction::EmitBranchOnBoolExpr(const
clang::Expr * Cond, llvm::BasicBlock * TrueBlock, llvm::BasicBlock *
FalseBlock, unsigned __int64 TrueCount) Line 1508 C++
  Plugin_Clang_d.dll!clang::CodeGen::CodeGenFunction::EmitBranchOnBoolExpr(const
clang::Expr * Cond, llvm::BasicBlock * TrueBlock, llvm::BasicBlock *
FalseBlock, unsigned __int64 TrueCount) Line 1430 C++
  Plugin_Clang_d.dll!clang::CodeGen::CodeGenFunction::EmitIfStmt(const
clang::IfStmt & S) Line 656 C++
  Plugin_Clang_d.dll!clang::CodeGen::CodeGenFunction::EmitStmt(const
clang::Stmt * S) Line 134 C++
  Plugin_Clang_d.dll!clang::CodeGen::CodeGenFunction::EmitCompoundStmtWithoutScope(const
clang::CompoundStmt & S, bool GetLast, clang::CodeGen::AggValueSlot
AggSlot) Line 381 C++
  Plugin_Clang_d.dll!clang::CodeGen::CodeGenFunction::EmitFunctionBody(clang::CodeGen::FunctionArgList
& Args, const clang::Stmt * Body) Line 990 C++
  Plugin_Clang_d.dll!clang::CodeGen::CodeGenFunction::GenerateCode(clang::GlobalDecl
GD, llvm::Function * Fn, const clang::CodeGen::CGFunctionInfo & FnInfo)
Line 1161 C++
  Plugin_Clang_d.dll!clang::CodeGen::CodeGenModule::EmitGlobalFunctionDefinition(clang::GlobalDecl
GD, llvm::GlobalValue * GV) Line 3052 C++
  Plugin_Clang_d.dll!clang::CodeGen::CodeGenModule::EmitGlobalDefinition(clang::GlobalDecl
GD, llvm::GlobalValue * GV) Line 1888 C++
  Plugin_Clang_d.dll!clang::CodeGen::CodeGenModule::EmitDeferred() Line 1360
C++
  Plugin_Clang_d.dll!clang::CodeGen::CodeGenModule::Release() Line 377 C++
  Plugin_Clang_d.dll!`anonymous
namespace'::CodeGeneratorImpl::HandleTranslationUnit(clang::ASTContext &
Ctx) Line 261 C++
  Plugin_Clang_d.dll!clang::BackendConsumer::HandleTranslationUnit(clang::ASTContext
& C) Line 205 C++
  Plugin_Clang_d.dll!clang::ParseAST(clang::Sema & S, bool PrintStats, bool
SkipFunctionBodies) Line 159 C++
  Plugin_Clang_d.dll!clang::ASTFrontendAction::ExecuteAction() Line 567 C++
  Plugin_Clang_d.dll!clang::CodeGenAction::ExecuteAction() Line 991 C++
  Plugin_Clang_d.dll!clang::FrontendAction::Execute() Line 468 C++
  Plugin_Clang_d.dll!clang::CompilerInstance::ExecuteAction(clang::FrontendAction
& Act) Line 951 C++
  Plugin_Clang_d.dll!clang::ExecuteCompilerInvocation(clang::CompilerInstance
* Clang) Line 249 C++
  Plugin_Clang_d.dll!Compiler::compile(const char * * ArgBegin, const char
* * ArgEnd, const char * Argv0, ASTVisitor & visitor) Line 536 C++
  Plugin_Clang_d.dll!Compiler::compile(const char * srcFilePath, const char
* outputFilePath, Scripta::result & result, const char * * args, unsigned
int argsSize) Line 287 C++
  scripta-example.exe!ScriptaPlatform::compile(const char * filePath, const
char * outputFile) Line 233 C++
  scripta-example.exe!ScriptaPlatform::load(const char * filename) Line 395
C++
  scripta-example.exe!main() Line 380 C++
  [External Code]


Here's hoping someone here can give me some guidance on resolving this
issue.

Thanks a lot for your time.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-dev/attachments/20170228/bcdb0655/attachment.html>


More information about the cfe-dev mailing list