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

Infinite loop on LookupContext for stl map

    XMLWordPrintable

Details

    • Bug
    • Resolution: Done
    • P1: Critical
    • Qt Creator 3.1.0
    • Qt Creator 3.1.0
    • C/C++/Obj-C++ Support
    • None
    • Win7, MSVC2010
    • 697ec700373ef8a6afc9d07236f23a2f32ddf87c

    Description

      Latest 3.1.

      Found by opening botan.cpp.

      MWE (or almost minimal, I hope it's enough ):

      #include <map>
      
      template<typename K, typename V>
      inline V search_map(const std::map<K, V>& mapping,
                          const K& key,
                          const V& null_result = V())
      {
          typename std::map<K, V>::const_iterator i = mapping.find(key);
          if(i == mapping.end())
              return null_result;
          return i->second;
      }
      • binding is "_Tree" with address 0x2ace0b70
      • binding->_parent is also "_Tree" with address 0x2ace0b70
      • binding->_parent->_parent is the first binding...
      0	CPlusPlus::ClassOrNamespace::lookup_helper	LookupContext.cpp	639	0x52dfeac6	
      1	CPlusPlus::ClassOrNamespace::lookup	LookupContext.cpp	597	0x52dfe8a2	
      2	TypedefsResolver::getNamedTypeItems	ResolveExpression.cpp	929	0x52df5411	
      3	TypedefsResolver::resolve	ResolveExpression.cpp	899	0x52df5216	
      4	CPlusPlus::ResolveExpression::baseExpression	ResolveExpression.cpp	1041	0x52df2cd8	
      5	CPlusPlus::ResolveExpression::visit	ResolveExpression.cpp	857	0x52df27ab	
      6	CPlusPlus::MemberAccessAST::accept0	ASTVisit.cpp	745	0x52d19a7b	
      7	CPlusPlus::AST::accept	AST.cpp	52	0x52d0d283	
      8	CPlusPlus::AST::accept	AST.h	93	0x52d010a5	
      9	CPlusPlus::ASTVisitor::accept	ASTVisitor.cpp	36	0x52d1f644	
      10	CPlusPlus::ResolveExpression::expression	ResolveExpression.cpp	119	0x52dee31f	
      11	CPlusPlus::ResolveExpression::resolve	ResolveExpression.cpp	107	0x52dee24b	
      12	CPlusPlus::ResolveExpression::operator()	ResolveExpression.cpp	94	0x52dee166	
      13	CPlusPlus::TypeOfExpression::operator()	TypeOfExpression.cpp	119	0x52de98c4	
      14	CPlusPlus::TypeOfExpression::operator()	TypeOfExpression.cpp	88	0x52de95a0	
      15	CppTools::CheckSymbols::visit	cppchecksymbols.cpp	574	0x52f5176f	
      16	CPlusPlus::MemberAccessAST::accept0	ASTVisit.cpp	745	0x52d19a7b	
      17	CPlusPlus::AST::accept	AST.cpp	52	0x52d0d283	
      18	CPlusPlus::AST::accept	AST.h	93	0x52d010a5	
      19	CPlusPlus::ReturnStatementAST::accept0	ASTVisit.cpp	826	0x52d19dcf	
      20	CPlusPlus::AST::accept	AST.cpp	52	0x52d0d283	
      21	CPlusPlus::AST::accept	AST.h	93	0x52d010a5	
      22	CPlusPlus::AST::accept<CPlusPlus::StatementAST *>	AST.h	99	0x52d1b3d4	
      23	CPlusPlus::CompoundStatementAST::accept0	ASTVisit.cpp	290	0x52d18662	
      24	CPlusPlus::AST::accept	AST.cpp	52	0x52d0d283	
      25	CPlusPlus::AST::accept	AST.h	93	0x52d010a5	
      26	CPlusPlus::ASTVisitor::accept	ASTVisitor.cpp	36	0x52d1f644	
      27	CppTools::CheckSymbols::visit	cppchecksymbols.cpp	1068	0x52f53ef7	
      28	CPlusPlus::FunctionDefinitionAST::accept0	ASTVisit.cpp	471	0x52d18e4b	
      29	CPlusPlus::AST::accept	AST.cpp	52	0x52d0d283	
      30	CPlusPlus::AST::accept	AST.h	93	0x52d010a5	
      31	CPlusPlus::TemplateDeclarationAST::accept0	ASTVisit.cpp	912	0x52d1a122	
      32	CPlusPlus::AST::accept	AST.cpp	52	0x52d0d283	
      33	CPlusPlus::AST::accept	AST.h	93	0x52d010a5	
      34	CPlusPlus::AST::accept<CPlusPlus::DeclarationAST *>	AST.h	99	0x52d1b3a4	
      35	CPlusPlus::LinkageBodyAST::accept0	ASTVisit.cpp	543	0x52d191d2	
      36	CPlusPlus::AST::accept	AST.cpp	52	0x52d0d283	
      37	CPlusPlus::AST::accept	AST.h	93	0x52d010a5	
      38	CPlusPlus::NamespaceAST::accept0	ASTVisit.cpp	633	0x52d19585	
      39	CPlusPlus::AST::accept	AST.cpp	52	0x52d0d283	
      40	CPlusPlus::AST::accept	AST.h	93	0x52d010a5	
      41	CPlusPlus::AST::accept<CPlusPlus::DeclarationAST *>	AST.h	99	0x52d1b3a4	
      42	CPlusPlus::TranslationUnitAST::accept0	ASTVisit.cpp	928	0x52d1a1bf	
      43	CPlusPlus::AST::accept	AST.cpp	52	0x52d0d283	
      44	CPlusPlus::AST::accept	AST.h	93	0x52d010a5	
      45	CPlusPlus::ASTVisitor::accept	ASTVisitor.cpp	36	0x52d1f644	
      46	CppTools::CheckSymbols::run	cppchecksymbols.cpp	339	0x52f50afb	
      47	QThreadPoolThread::run	qthreadpool.cpp	100	0x54d07c28	
      48	QThreadPrivate::start	qthread_win.cpp	349	0x54d0fc35	
      49	_beginthreadex	MSVCR100D		0x68fda273	
      50	_beginthreadex	MSVCR100D		0x68fda204	
      51	BaseThreadInitThunk	kernel32		0x7537336a	
      52	__RtlUserThreadStart	ntdll		0x77b19f72	
      53	_RtlUserThreadStart	ntdll		0x77b19f45

      Attachments

        Issue Links

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

          Activity

            People

              kosjar Nikolai Kosjar
              orgads Orgad Shaneh
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Gerrit Reviews

                  There are no open Gerrit changes