Uploaded image for project: 'Qt Creator'
  1. Qt Creator
  2. QTCREATORBUG-20634

[Windows]: When modifying an existing line using std::unique_ptr to include "std:" for the deleter argument it will crash

    XMLWordPrintable

Details

    Description

      When modifying an existing line using std::unique_ptr to include "std:" for the deleter argument it will crash. In the attached example, change the line:

      auto devInfoPtr = std::unique_ptr<HDEVINFO>( 
      

      to be:

      auto devInfoPtr = std::unique_ptr<HDEVINFO, std:>( 
      

      and then it will crash shortly afterwards. The stack is:

      CPlusPlusd4.dll!std::_Tree<std::_Tmap_traits<CPlusPlus::Name const *,CPlusPlus::FullySpecifiedType,CPlusPlus::Name::Compare,std::allocator<std::pair<CPlusPlus::Name const * const,CPlusPlus::FullySpecifiedType> >,0> >::_Lbound<CPlusPlus::Name const *>(const CPlusPlus::Name * const & _Keyval) Line 2060 C++
        CPlusPlusd4.dll!std::_Tree<std::_Tmap_traits<CPlusPlus::Name const *,CPlusPlus::FullySpecifiedType,CPlusPlus::Name::Compare,std::allocator<std::pair<CPlusPlus::Name const * const,CPlusPlus::FullySpecifiedType> >,0> >::lower_bound(const CPlusPlus::Name * const & _Keyval) Line 1543 C++
        CPlusPlusd4.dll!std::_Tree<std::_Tmap_traits<CPlusPlus::Name const *,CPlusPlus::FullySpecifiedType,CPlusPlus::Name::Compare,std::allocator<std::pair<CPlusPlus::Name const * const,CPlusPlus::FullySpecifiedType> >,0> >::find(const CPlusPlus::Name * const & _Keyval) Line 1491 C++
        CPlusPlusd4.dll!CPlusPlus::Subst::apply(const CPlusPlus::Name * name) Line 552 C++
        CPlusPlusd4.dll!CPlusPlus::Declaration::Declaration(CPlusPlus::Clone * clone, CPlusPlus::Subst * subst, CPlusPlus::Declaration * original) Line 158 C++
        CPlusPlusd4.dll!CPlusPlus::CloneSymbol::visit(CPlusPlus::Declaration * symbol) Line 237 C++
        CPlusPlusd4.dll!CPlusPlus::Symbol::visitSymbol(CPlusPlus::Symbol * symbol, CPlusPlus::SymbolVisitor * visitor) Line 141 C++
        CPlusPlusd4.dll!CPlusPlus::CloneSymbol::cloneSymbol(CPlusPlus::Symbol * symbol, CPlusPlus::Subst * subst) Line 201 C++
        CPlusPlusd4.dll!CPlusPlus::Scope::Scope(CPlusPlus::Clone * clone, CPlusPlus::Subst * subst, CPlusPlus::Scope * original) Line 243 C++
        CPlusPlusd4.dll!CPlusPlus::Class::Class(CPlusPlus::Clone * clone, CPlusPlus::Subst * subst, CPlusPlus::Class * original) Line 770 C++
        CPlusPlusd4.dll!CPlusPlus::CloneSymbol::visit(CPlusPlus::Class * symbol) Line 301 C++
        CPlusPlusd4.dll!CPlusPlus::Class::visitSymbol0(CPlusPlus::SymbolVisitor * visitor) Line 818 C++
        CPlusPlusd4.dll!CPlusPlus::Symbol::visitSymbol(CPlusPlus::Symbol * symbol, CPlusPlus::SymbolVisitor * visitor) Line 141 C++
        CPlusPlusd4.dll!CPlusPlus::CloneSymbol::cloneSymbol(CPlusPlus::Symbol * symbol, CPlusPlus::Subst * subst) Line 201 C++
        CPlusPlusd4.dll!CPlusPlus::Scope::Scope(CPlusPlus::Clone * clone, CPlusPlus::Subst * subst, CPlusPlus::Scope * original) Line 243 C++
        CPlusPlusd4.dll!CPlusPlus::Template::Template(CPlusPlus::Clone * clone, CPlusPlus::Subst * subst, CPlusPlus::Template * original) Line 610 C++
        CPlusPlusd4.dll!CPlusPlus::CloneSymbol::visit(CPlusPlus::Template * symbol) Line 293 C++
        CPlusPlusd4.dll!CPlusPlus::Template::visitSymbol0(CPlusPlus::SymbolVisitor * visitor) Line 645 C++
        CPlusPlusd4.dll!CPlusPlus::Symbol::visitSymbol(CPlusPlus::Symbol * symbol, CPlusPlus::SymbolVisitor * visitor) Line 141 C++
        CPlusPlusd4.dll!CPlusPlus::CloneSymbol::cloneSymbol(CPlusPlus::Symbol * symbol, CPlusPlus::Subst * subst) Line 201 C++
        CPlusPlusd4.dll!CPlusPlus::CloneType::visit(CPlusPlus::Template * type) Line 125 C++
        CPlusPlusd4.dll!CPlusPlus::Template::accept0(CPlusPlus::TypeVisitor * visitor) Line 653 C++
        CPlusPlusd4.dll!CPlusPlus::Type::accept(CPlusPlus::Type * type, CPlusPlus::TypeVisitor * visitor) Line 107 C++
        CPlusPlusd4.dll!CPlusPlus::TypeVisitor::accept(CPlusPlus::Type * type) Line 33 C++
        CPlusPlusd4.dll!CPlusPlus::CloneType::cloneType(const CPlusPlus::FullySpecifiedType & type, CPlusPlus::Subst * subst) Line 52 C++
        CPlusPlusd4.dll!CPlusPlus::CloneType::operator()(const CPlusPlus::FullySpecifiedType & type, CPlusPlus::Subst * subst) Line 71 C++
        CPlusPlusd4.dll!CPlusPlus::Clone::type(const CPlusPlus::FullySpecifiedType & type, CPlusPlus::Subst * subst) Line 508 C++
        CPlusPlusd4.dll!CPlusPlus::ResolveExpression::visit(CPlusPlus::SimpleNameAST * ast) Line 774 C++
        CPlusPlusd4.dll!CPlusPlus::SimpleNameAST::accept0(CPlusPlus::ASTVisitor * visitor) Line 618 C++
        CPlusPlusd4.dll!CPlusPlus::AST::accept(CPlusPlus::ASTVisitor * visitor) Line 52 C++
        CPlusPlusd4.dll!CPlusPlus::ResolveExpression::visit(CPlusPlus::IdExpressionAST * ast) Line 312 C++
        CPlusPlusd4.dll!CPlusPlus::IdExpressionAST::accept0(CPlusPlus::ASTVisitor * visitor) Line 218 C++
        CPlusPlusd4.dll!CPlusPlus::AST::accept(CPlusPlus::ASTVisitor * visitor) Line 52 C++
        CPlusPlusd4.dll!CPlusPlus::ResolveExpression::expression(CPlusPlus::ExpressionAST * ast) Line 272 C++
        CPlusPlusd4.dll!CPlusPlus::ResolveExpression::resolve(CPlusPlus::ExpressionAST * ast, CPlusPlus::Scope * scope, bool ref) Line 262 C++
        CPlusPlusd4.dll!CPlusPlus::ResolveExpression::visit(CPlusPlus::MemberAccessAST * ast) Line 1027 C++
        CPlusPlusd4.dll!CPlusPlus::MemberAccessAST::accept0(CPlusPlus::ASTVisitor * visitor) Line 753 C++
        CPlusPlusd4.dll!CPlusPlus::AST::accept(CPlusPlus::ASTVisitor * visitor) Line 52 C++
        CPlusPlusd4.dll!CPlusPlus::ResolveExpression::expression(CPlusPlus::ExpressionAST * ast) Line 272 C++
        CPlusPlusd4.dll!CPlusPlus::ResolveExpression::resolve(CPlusPlus::ExpressionAST * ast, CPlusPlus::Scope * scope, bool ref) Line 262 C++
        CPlusPlusd4.dll!CPlusPlus::ResolveExpression::operator()(CPlusPlus::ExpressionAST * ast, CPlusPlus::Scope * scope) Line 247 C++
        CPlusPlusd4.dll!CPlusPlus::TypeOfExpression::operator()(CPlusPlus::ExpressionAST * expression, QSharedPointer<CPlusPlus::Document> document, CPlusPlus::Scope * scope) Line 109 C++
        CPlusPlusd4.dll!CPlusPlus::TypeOfExpression::operator()(const QByteArray & utf8code, CPlusPlus::Scope * scope, CPlusPlus::TypeOfExpression::PreprocessMode mode) Line 76 C++
        CppToolsd4.dll!CppTools::CheckSymbols::visit(CPlusPlus::CallAST * ast) Line 663 C++
        CPlusPlusd4.dll!CPlusPlus::CallAST::accept0(CPlusPlus::ASTVisitor * visitor) Line 727 C++
        CPlusPlusd4.dll!CPlusPlus::AST::accept(CPlusPlus::ASTVisitor * visitor) Line 52 C++
        CPlusPlusd4.dll!CPlusPlus::DeclaratorAST::accept0(CPlusPlus::ASTVisitor * visitor) Line 107 C++
        CPlusPlusd4.dll!CPlusPlus::AST::accept(CPlusPlus::ASTVisitor * visitor) Line 52 C++
        CppToolsd4.dll!CppTools::CheckSymbols::visit(CPlusPlus::SimpleDeclarationAST * ast) Line 558 C++
        CPlusPlusd4.dll!CPlusPlus::SimpleDeclarationAST::accept0(CPlusPlus::ASTVisitor * visitor) Line 112 C++
        CPlusPlusd4.dll!CPlusPlus::AST::accept(CPlusPlus::ASTVisitor * visitor) Line 52 C++
        CPlusPlusd4.dll!CPlusPlus::DeclarationStatementAST::accept0(CPlusPlus::ASTVisitor * visitor) Line 344 C++
        CPlusPlusd4.dll!CPlusPlus::AST::accept(CPlusPlus::ASTVisitor * visitor) Line 52 C++
        CPlusPlusd4.dll!CPlusPlus::CompoundStatementAST::accept0(CPlusPlus::ASTVisitor * visitor) Line 298 C++
        CPlusPlusd4.dll!CPlusPlus::AST::accept(CPlusPlus::ASTVisitor * visitor) Line 52 C++
        CppToolsd4.dll!CppTools::CheckSymbols::visit(CPlusPlus::FunctionDefinitionAST * ast) Line 1143 C++
        CPlusPlusd4.dll!CPlusPlus::FunctionDefinitionAST::accept0(CPlusPlus::ASTVisitor * visitor) Line 479 C++
        CPlusPlusd4.dll!CPlusPlus::AST::accept(CPlusPlus::ASTVisitor * visitor) Line 52 C++
        CPlusPlusd4.dll!CPlusPlus::TranslationUnitAST::accept0(CPlusPlus::ASTVisitor * visitor) Line 944 C++
        CPlusPlusd4.dll!CPlusPlus::AST::accept(CPlusPlus::ASTVisitor * visitor) Line 52 C++
        CppToolsd4.dll!CppTools::CheckSymbols::run() Line 346 C++
        Qt5Cored.dll!QThreadPoolThread::run() Line 101 C++
        Qt5Cored.dll!QThreadPrivate::start(void * arg) Line 380 C++
        [External Code] 
        [Frames below may be incorrect and/or missing, no symbols loaded for kernel32.dll] 
      

      Attachments

        No reviews matched the request. Check your Options in the drop-down menu of this sections header.

        Activity

          People

            yvvan Ivan Donchevskii
            andysh Andy Shaw
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Gerrit Reviews

                There are no open Gerrit changes