diff options
author | Nikolai Kosjar <nikolai.kosjar@digia.com> | 2012-12-04 11:07:08 +0100 |
---|---|---|
committer | Nikolai Kosjar <nikolai.kosjar@digia.com> | 2012-12-06 10:56:10 +0100 |
commit | a281dfd4b1d9117b3270719d45dd5de5e9cd18f3 (patch) | |
tree | af74e35aa5a60461c013a6d9bfe387f07a76a3b9 | |
parent | 70f6b107b6712ddd4c9391343fc86888dabd2cf4 (diff) | |
download | qt-creator-a281dfd4b1d9117b3270719d45dd5de5e9cd18f3.tar.gz |
C++: Tools: Compile with QT_NO_CAST_FROM_ASCII
Change-Id: I9de2c7fe51fea7844813cecb7c68f9a85a8e1e62
Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
9 files changed, 64 insertions, 46 deletions
diff --git a/src/libs/utils/environment.cpp b/src/libs/utils/environment.cpp index 7a5849823b..47b747cb05 100644 --- a/src/libs/utils/environment.cpp +++ b/src/libs/utils/environment.cpp @@ -45,9 +45,9 @@ public: if (Utils::HostOsInfo::isLinuxHost()) { QString ldLibraryPath = value(QLatin1String("LD_LIBRARY_PATH")); QDir lib(QCoreApplication::applicationDirPath()); - lib.cd("../lib"); + lib.cd(QLatin1String("../lib")); QString toReplace = lib.path(); - lib.cd("qtcreator"); + lib.cd(QLatin1String("qtcreator")); toReplace.append(QLatin1String(":")); toReplace.append(lib.path()); diff --git a/src/tools/cplusplus-mkvisitor/cplusplus-mkvisitor.cpp b/src/tools/cplusplus-mkvisitor/cplusplus-mkvisitor.cpp index ae21f90d94..0fc2846621 100644 --- a/src/tools/cplusplus-mkvisitor/cplusplus-mkvisitor.cpp +++ b/src/tools/cplusplus-mkvisitor/cplusplus-mkvisitor.cpp @@ -86,7 +86,7 @@ class MkVisitor: protected SymbolVisitor if (interfaces.contains(b) || isMiscNode(b)) { QString className = oo(b->symbols().first()->name()); - if (className.endsWith("AST")) { + if (className.endsWith(QLatin1String("AST"))) { className.chop(3); QString funcName = className; @@ -141,13 +141,13 @@ public: Q_ASSERT(klass != 0); QString className = oo(klass->name()); - if (className == "AST") + if (className == QLatin1String("AST")) continue; QString baseClassName = className; baseClassName.chop(3); - QString retTy = false; + QString retTy; QString funcName = getAcceptFunctionName(b, &retTy); std::cout @@ -222,13 +222,13 @@ public: Q_ASSERT(klass != 0); QString className = oo(klass->name()); - if (className == "AST") + if (className == QLatin1String("AST")) continue; QString baseClassName = className; baseClassName.chop(3); - QString current = "_current"; + QString current = QLatin1String("_current"); current += baseClassName; std::cout << " " << qPrintable(baseClassName) << "Ty " << qPrintable(current) << ";" << std::endl; @@ -255,7 +255,7 @@ public: Q_ASSERT(klass != 0); QString className = oo(klass->name()); - if (className == "AST") + if (className == QLatin1String("AST")) continue; QString baseClassName = className; @@ -264,7 +264,7 @@ public: QString retTy; QString funcName = getAcceptFunctionName(b, &retTy); - QString current = "_current"; + QString current = QLatin1String("_current"); current += baseClassName; std::cout << "Semantic::" << qPrintable(baseClassName) << "Ty Semantic::" @@ -322,10 +322,10 @@ public: if (PointerType *ptrTy = decl->type()->asPointerType()) { if (NamedType *namedTy = ptrTy->elementType()->asNamedType()) { const QString eltTyName = oo(namedTy->name()); - if (eltTyName.endsWith("ListAST")) { + if (eltTyName.endsWith(QLatin1String("ListAST"))) { QString name = eltTyName; name.chop(7); - name += "AST"; + name += QLatin1String("AST"); Control *control = context.thisDocument()->control(); const Name *n = control->identifier(name.toLatin1().constData()); @@ -352,7 +352,7 @@ public: if (ClassOrNamespace *ty = context.lookupType(namedTy->name(), klass)) { QString className = oo(ty->symbols().first()->name()); QString baseClassName = className; - if (baseClassName.endsWith("AST")) { + if (baseClassName.endsWith(QLatin1String("AST"))) { baseClassName.chop(3); QString retTy; @@ -394,7 +394,7 @@ protected: virtual bool visit(Class *klass) { const QString className = oo(klass->name()); - if (! className.endsWith("AST")) + if (! className.endsWith(QLatin1String("AST"))) return false; ClassOrNamespace *b = context.lookupType(klass); @@ -429,7 +429,7 @@ void printUsage() std::cout << "Usage: " << qPrintable(QFileInfo(qApp->arguments().at(0)).fileName()) << " [-v] [path to AST.h]\n\n" << "Print a visitor class based on AST.h to stdout.\n\n"; - const QString defaulPath = QFileInfo(PATH_AST_H).canonicalFilePath(); + const QString defaulPath = QFileInfo(QLatin1String(PATH_AST_H)).canonicalFilePath(); std::cout << "Default path: " << qPrintable(defaulPath) << '.' << "\n"; } @@ -442,18 +442,19 @@ int main(int argc, char *argv[]) bool optionVerbose = false; // Process options & arguments - if (args.contains("-v")) { + if (args.contains(QLatin1String("-v"))) { optionVerbose = true; - args.removeOne("-v"); + args.removeOne(QLatin1String("-v")); } - const bool helpRequested = args.contains("-h") || args.contains("-help"); + const bool helpRequested = args.contains(QLatin1String("-h")) + || args.contains(QLatin1String("-help")); if (helpRequested || args.count() >= 2) { printUsage(); return helpRequested ? EXIT_SUCCESS : EXIT_FAILURE; } // Run the preprocessor - QString fileName = PATH_AST_H; + QString fileName = QLatin1String(PATH_AST_H); if (!args.isEmpty()) fileName = args.first(); diff --git a/src/tools/cplusplus-mkvisitor/cplusplus-mkvisitor.pro b/src/tools/cplusplus-mkvisitor/cplusplus-mkvisitor.pro index aa942fc5fa..ce0a4bc7aa 100644 --- a/src/tools/cplusplus-mkvisitor/cplusplus-mkvisitor.pro +++ b/src/tools/cplusplus-mkvisitor/cplusplus-mkvisitor.pro @@ -9,5 +9,6 @@ include(../../../qtcreator.pri) include(../../libs/cplusplus/cplusplus-lib.pri) include(../../../src/tools/cplusplus-tools-utils/cplusplus-tools-utils.pri) +DEFINES *= QT_NO_CAST_FROM_ASCII DEFINES += PATH_AST_H=\\\"$$PWD/../../libs/3rdparty/cplusplus/AST.h\\\" SOURCES += cplusplus-mkvisitor.cpp diff --git a/src/tools/cplusplus-tools-utils/cplusplus-tools-utils.cpp b/src/tools/cplusplus-tools-utils/cplusplus-tools-utils.cpp index 5ad4ce0906..39a3dc84ae 100644 --- a/src/tools/cplusplus-tools-utils/cplusplus-tools-utils.cpp +++ b/src/tools/cplusplus-tools-utils/cplusplus-tools-utils.cpp @@ -65,7 +65,7 @@ void executeCommand(const QString &command, const QStringList &arguments, const process.setStandardOutputFile(outputFile, QIODevice::Truncate); process.start(command, arguments); if (!process.waitForStarted()) { - out << QString("Error: Process \"%1\" did not start within timeout: %2.") + out << QString::fromLatin1("Error: Process \"%1\" did not start within timeout: %2.") .arg(fullCommand, process.errorString()) << endl; exit(EXIT_FAILURE); @@ -73,14 +73,15 @@ void executeCommand(const QString &command, const QStringList &arguments, const if (!process.waitForFinished()) { if (!verbose) out << process.readAll() << endl; - out << QString("Error: Process \"%1\" did not finish within timeout.").arg(fullCommand) + out << QString::fromLatin1("Error: Process \"%1\" did not finish within timeout.") + .arg(fullCommand) << endl; exit(EXIT_FAILURE); } const int exitCode = process.exitCode(); if (exitCode != 0) { out << process.readAllStandardError() << endl; - out << QString("Error: Process \"%1\" finished with non zero exit value %2") + out << QString::fromLatin1("Error: Process \"%1\" finished with non zero exit value %2") .arg(fullCommand, exitCode) << endl; exit(EXIT_FAILURE); } @@ -89,9 +90,9 @@ void executeCommand(const QString &command, const QStringList &arguments, const SystemPreprocessor::SystemPreprocessor(bool verbose) : m_verbose(verbose) { - m_knownCompilers[portableExecutableName("gcc")] + m_knownCompilers[portableExecutableName(QLatin1String("gcc"))] = QLatin1String("-DCPLUSPLUS_WITHOUT_QT -U__BLOCKS__ -xc++ -E -include"); - m_knownCompilers[portableExecutableName("cl")] + m_knownCompilers[portableExecutableName(QLatin1String("cl"))] = QLatin1String("/DCPLUSPLUS_WITHOUT_QT /U__BLOCKS__ /TP /E /I . /FI"); QMapIterator<QString, QString> i(m_knownCompilers); @@ -112,14 +113,17 @@ SystemPreprocessor::SystemPreprocessor(bool verbose) void SystemPreprocessor::check() const { QTextStream out(stderr); - if (!QFile::exists(PATH_PREPROCESSOR_CONFIG)) { - out << QString("Error: File \"%1\" does not exist.").arg(PATH_PREPROCESSOR_CONFIG) << endl; + if (!QFile::exists(QLatin1String(PATH_PREPROCESSOR_CONFIG))) { + out << QString::fromLatin1("Error: File \"%1\" does not exist.") + .arg(QLatin1String(PATH_PREPROCESSOR_CONFIG)) + << endl; exit(EXIT_FAILURE); } if (m_compiler.isEmpty()) { const QString triedCompilers = QStringList(m_knownCompilers.keys()).join(QLatin1String(", ")); - out << QString("Error: No compiler found. Tried %1.").arg(triedCompilers) << endl; + out << QString::fromLatin1("Error: No compiler found. Tried %1.").arg(triedCompilers) + << endl; exit(EXIT_FAILURE); } } @@ -129,7 +133,7 @@ void SystemPreprocessor::preprocessFile(const QString &inputFile, const QString check(); if (!QFile::exists(inputFile)) { QTextStream out(stderr); - out << QString("Error: File \"%1\" does not exist.").arg(inputFile) << endl; + out << QString::fromLatin1("Error: File \"%1\" does not exist.").arg(inputFile) << endl; exit(EXIT_FAILURE); } const QStringList arguments = QStringList(m_compilerArguments) diff --git a/src/tools/cplusplus-tools-utils/cplusplus-tools-utils.pri b/src/tools/cplusplus-tools-utils/cplusplus-tools-utils.pri index 99002ad0d0..c84010be2c 100644 --- a/src/tools/cplusplus-tools-utils/cplusplus-tools-utils.pri +++ b/src/tools/cplusplus-tools-utils/cplusplus-tools-utils.pri @@ -1,6 +1,7 @@ DEPENDPATH += $$PWD INCLUDEPATH += $$PWD $$PWD/../../libs/utils +DEFINES *= QT_NO_CAST_FROM_ASCII DEFINES += PATH_PREPROCESSOR_CONFIG=\\\"$$PWD/pp-configuration.inc\\\" DEFINES += QTCREATOR_UTILS_STATIC_LIB diff --git a/src/tools/cplusplus-update-frontend/cplusplus-update-frontend.cpp b/src/tools/cplusplus-update-frontend/cplusplus-update-frontend.cpp index 6d8a61dc7f..6bc5b2162f 100644 --- a/src/tools/cplusplus-update-frontend/cplusplus-update-frontend.cpp +++ b/src/tools/cplusplus-update-frontend/cplusplus-update-frontend.cpp @@ -169,7 +169,7 @@ protected: const QString className = oo(klass->name()); - if (className.endsWith("AST")) { + if (className.endsWith(QLatin1String("AST"))) { if (className == QLatin1String("AST")) _nodes.base = ast; else { @@ -1414,11 +1414,16 @@ QStringList generateAST_H(const Snapshot &snapshot, const QDir &cplusplusDir, co cursors[classAST] = removeCastMethods(classAST); const QString className = oo(classAST->symbol->name()); const QString methodName = QLatin1String("as") + className.mid(0, className.length() - 3); - replacementCastMethods[classAST] = QString(" virtual %1 *%2() { return this; }\n").arg(className, methodName); - castMethods.append(QString(" virtual %1 *%2() { return 0; }\n").arg(className, methodName)); + replacementCastMethods[classAST] + = QString::fromLatin1(" virtual %1 *%2() { return this; }\n") + .arg(className, methodName); + castMethods.append( + QString::fromLatin1(" virtual %1 *%2() { return 0; }\n") + .arg(className, methodName)); astDerivedClasses.append(className); - constructors[classAST] = removeConstructors(classAST, AST_h_document->translationUnit(), &document); + constructors[classAST] = removeConstructors(classAST, AST_h_document->translationUnit(), + &document); replacementConstructors[classAST] = createConstructor(classAST); } @@ -1612,7 +1617,7 @@ void generateASTPatternBuilder_h(const QDir &cplusplusDir) const QString className = oo(klass->name()); - if (! className.endsWith("AST")) + if (! className.endsWith(QLatin1String("AST"))) continue; const QString methodName = className.left(className.length() - 3); @@ -1633,9 +1638,9 @@ void generateASTPatternBuilder_h(const QDir &cplusplusDir) continue; const QString tyName = oo(ptrTy->elementType()); - if (tyName.endsWith("ListAST")) + if (tyName.endsWith(QLatin1String("ListAST"))) listClasses.insert(tyName); - if (tyName.endsWith("AST")) { + if (tyName.endsWith(QLatin1String("AST"))) { if (! first) out << ", "; @@ -1699,8 +1704,10 @@ void printUsage() << "to AST.h and print the paths of the written files. Run this tool after\n" << "modifying AST.h." << "\n\n"; - const QString defaultPathCppFrontend = QFileInfo(PATH_CPP_FRONTEND).canonicalFilePath(); - const QString defaultPathDumpersFile = QFileInfo(PATH_DUMPERS_FILE).canonicalFilePath(); + const QString defaultPathCppFrontend + = QFileInfo(QLatin1String(PATH_CPP_FRONTEND)).canonicalFilePath(); + const QString defaultPathDumpersFile + = QFileInfo(QLatin1String(PATH_DUMPERS_FILE)).canonicalFilePath(); std::cout << "Default values:" << "\n" << " frontend-dir: " << qPrintable(defaultPathCppFrontend) << "\n" << " dumpers-file: " << qPrintable(defaultPathDumpersFile) << "\n"; @@ -1712,10 +1719,11 @@ int main(int argc, char *argv[]) QStringList args = app.arguments(); args.removeFirst(); - QString pathCppFrontend = PATH_CPP_FRONTEND; - QString pathDumpersFile = PATH_DUMPERS_FILE; + QString pathCppFrontend = QLatin1String(PATH_CPP_FRONTEND); + QString pathDumpersFile = QLatin1String(PATH_DUMPERS_FILE); - const bool helpRequested = args.contains("-h") || args.contains("-help"); + const bool helpRequested = args.contains(QLatin1String("-h")) + || args.contains(QLatin1String("-help")); if (args.count() == 1 || args.count() >= 3 || helpRequested) { printUsage(); return helpRequested ? EXIT_SUCCESS : EXIT_FAILURE; diff --git a/src/tools/cplusplus-update-frontend/cplusplus-update-frontend.pro b/src/tools/cplusplus-update-frontend/cplusplus-update-frontend.pro index 7b0e853cd4..73bbfd0cc8 100644 --- a/src/tools/cplusplus-update-frontend/cplusplus-update-frontend.pro +++ b/src/tools/cplusplus-update-frontend/cplusplus-update-frontend.pro @@ -10,6 +10,7 @@ INCLUDEPATH += . ../../libs include(../../../qtcreator.pri) include(../../libs/cplusplus/cplusplus-lib.pri) +DEFINES *= QT_NO_CAST_FROM_ASCII DEFINES += PATH_CPP_FRONTEND=\\\"$$PWD/../../libs/3rdparty/cplusplus\\\" DEFINES += PATH_DUMPERS_FILE=\\\"$$PWD/../../../tests/tools/cplusplus-ast2png/dumpers.inc\\\" SOURCES += cplusplus-update-frontend.cpp ../../libs/utils/changeset.cpp diff --git a/tests/tools/cplusplus-ast2png/cplusplus-ast2png.cpp b/tests/tools/cplusplus-ast2png/cplusplus-ast2png.cpp index 10a4e15ec7..51d7c37986 100644 --- a/tests/tools/cplusplus-ast2png/cplusplus-ast2png.cpp +++ b/tests/tools/cplusplus-ast2png/cplusplus-ast2png.cpp @@ -383,7 +383,7 @@ QString example() #else QString::fromLatin1("$ echo \"int foo() {}\" | ./%1 && xdg-open %2.ast.png") #endif - .arg(QFileInfo(qApp->arguments().at(0)).fileName(), PATH_STDIN_FILE); + .arg(QFileInfo(qApp->arguments().at(0)).fileName(), QLatin1String(PATH_STDIN_FILE)); } void printUsage() @@ -391,7 +391,7 @@ void printUsage() std::cout << "Usage: " << qPrintable(QFileInfo(qApp->arguments().at(0)).fileName()) << " [-v] <file1> <file2> ...\n\n"; - std::cout << qPrintable(QString::fromLatin1( + std::cout << QString::fromLatin1( "Visualize AST and symbol hierarchy of given C++ files by generating png image files\n" "in the same directory as the input files. Print paths to generated image files.\n" "\n" @@ -404,7 +404,7 @@ void printUsage() "Prerequisites:\n" " 1) Make sure to have 'dot' from graphviz locatable by PATH.\n" " 2) Make sure to have an up to date dumpers file by using 'cplusplus-update-frontend'.\n" - ).arg(PATH_STDIN_FILE, example())); + ).arg(QLatin1String(PATH_STDIN_FILE), example()).toLocal8Bit().constData(); } int main(int argc, char *argv[]) @@ -417,7 +417,7 @@ int main(int argc, char *argv[]) // Data from stdin? if (!tty_for_stdin()) { - QFile file("_stdincontents.cpp"); + QFile file((QLatin1String(PATH_STDIN_FILE))); if (! file.open(QFile::WriteOnly)) { std::cerr << "Error: Cannot open file for writing\"" << qPrintable(file.fileName()) << "\"" << std::endl; @@ -429,11 +429,12 @@ int main(int argc, char *argv[]) } // Process options & arguments - if (args.contains("-v")) { + if (args.contains(QLatin1String("-v"))) { optionVerbose = true; - args.removeOne("-v"); + args.removeOne(QLatin1String("-v")); } - const bool helpRequested = args.contains("-h") || args.contains("-help"); + const bool helpRequested = args.contains(QLatin1String("-h")) + || args.contains(QLatin1String("-help")); if (args.isEmpty() || helpRequested) { printUsage(); return helpRequested ? EXIT_SUCCESS : EXIT_FAILURE; diff --git a/tests/tools/cplusplus-ast2png/cplusplus-ast2png.pro b/tests/tools/cplusplus-ast2png/cplusplus-ast2png.pro index 8a0fd726ad..c02c4dba9f 100644 --- a/tests/tools/cplusplus-ast2png/cplusplus-ast2png.pro +++ b/tests/tools/cplusplus-ast2png/cplusplus-ast2png.pro @@ -9,4 +9,5 @@ include(../../../qtcreator.pri) include(../../../src/libs/cplusplus/cplusplus-lib.pri) include(../../../src/tools/cplusplus-tools-utils/cplusplus-tools-utils.pri) +DEFINES *= QT_NO_CAST_FROM_ASCII SOURCES += cplusplus-ast2png.cpp |