Details
-
Bug
-
Resolution: Done
-
P2: Important
-
5.2.0
-
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
- resulted from
-
QTBUG-8550 lupdate don't evaluate FOR in pro file
-
- Closed
-