Uploaded image for project: 'Qt'
  1. Qt
  2. QTBUG-36562

Crash in lrelease

    XMLWordPrintable

Details

    • Bug
    • Resolution: Done
    • P2: Important
    • 5.3.0
    • 5.2.0
    • Tools: Linguist
    • None
    • Windows 7, Qt5.2.0 VS2012 32bit.
    • 71454fbb13f22d17aba6f8b356061ea6f81aea0b

    Description

      Crash when running lrelease with following pro file. The change https://codereview.qt-project.org/62634 has caused the crash (task QTBUG-8550).

      ################################################################################
      # makeTargetName( TARGET_NAME )
      #
      # Parameter:
      #     TARGET_NAME: Der urspruengliche Target-Name
      #
      # Rueckgabe:
      #     Liefert den endgueltigen Namen
      #
      # Beispiel:
      #     TARGET = $$makeTargetName($${TARGET})
      ################################################################################
      
      defineReplace(makeTargetName){
         targetname = $${1}
         # d fuer Debug anhaengen
         contains( TEMPLATE, vclib ) | contains( TEMPLATE, vcapp ) {
            # VS-Projekt
            if(!debug_and_release|build_pass):CONFIG(debug, debug|release){
               targetname=$$join(targetname,,,d)
            }
         } else {
            # QtCreator Projekt
            CONFIG(debug, debug|release){
               targetname=$$join(targetname,,,d)
            }
         }
      
         # Ergebnis zurueckgeben
         return($${targetname})
      }
      
      ################################################################################
      # makeDependLibNames( LIB_NAMES, Extension )
      #
      # Parameter:
      #     LIB_NAMES: Der urspruengliche Inhalt von LIBS
      #     Extension: Die Extension der libs mit .
      #
      # Rueckgabe:
      #     Alle Eintraege konvertiert mit Version und Debug
      #
      # Beispiel:
      #     LIBS = $$makeDependLibNames($${LIBS}, .lib)
      #
      ################################################################################
      
      defineReplace(makeDependLibNames){
          libs = $${LIBS}
          ext  = .lib
          newlibs  = ""
          libpath  = "./../../bin"
      
          # Alle Eintraege durchgehen
          for(lib,libs){
      
            # Extension suchen
            found = $$find(lib,$${ext})
      
            # Extension war enthalten?
            !isEmpty(found){
               # Extension loeschen
               found = $$replace(found,$${ext},"")
      
               # Richtigen Namen zusammenbauen
               found = $$makeTargetName($${found})
      
      # fuer GNU
      win32-g++ {
               # Extension wieder anhaengen
               found = $$join(found,,lib,.a)
      }
      
      # fuer Windows
      win32-msvc* {
               # Extension wieder anhaengen
               found = $$join(found,,,.lib)
      }
      
               # Konvertierten String anhaengen
               foundlib = $${libpath}/$${found}
               foundlib = $$replace( foundlib, -L, )
               newlibs += $${foundlib}
      
            } else {
               libpath = $${lib}
            }
          }
      
          # Gesamtstring zurueckgeben
          return($${newlibs})
      }
      
      TEMPLATE = app
      TARGET = unittest
      
      # Bibliotheken
      LIBS += Base.lib
      LIBS += Help.lib
      LIBS += Connection.lib
      LIBS += HardwareInfo.lib
      LIBS += Settings.lib
      LIBS += Parameter.lib
      LIBS += PCBConfig.lib
      
      # Translation file(s)
      #TRANSLATIONS = UnitTests_ENG.ts
      
      PRE_TARGETDEPS += $$makeDependLibNames()
      

      Note that if you reduce the amount of LIBS then the crash does not happen. Tested with Qt5.2.0, VS2012, 32bit. After removing change dd4d594c787a62fa8aa12695c5d115c71b59bacd from Qt5.2.0, crash did not happen.

      gdb resulted only:
      "terminate called after throwing an instance of 'std::bad_alloc'
      what(): std::bad_alloc"

      Attachments

        Issue Links

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

          Activity

            People

              buddenha Oswald Buddenhagen
              qtcomsupport Qt Support
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Gerrit Reviews

                  There are no open Gerrit changes