diff --git a/src/plugins/clangcodemodel/clangutils.cpp b/src/plugins/clangcodemodel/clangutils.cpp index c250c9b4603..0780b1cae3f 100644 --- a/src/plugins/clangcodemodel/clangutils.cpp +++ b/src/plugins/clangcodemodel/clangutils.cpp @@ -119,10 +119,12 @@ static QJsonObject createFileObject(const FilePath &buildDir, const ProjectFile::Kind kind = ProjectFile::classify(projFile.path); if (projectPart.toolchainType == ProjectExplorer::Constants::MSVC_TOOLCHAIN_TYPEID || projectPart.toolchainType == ProjectExplorer::Constants::CLANG_CL_TOOLCHAIN_TYPEID) { - if (ProjectFile::isC(kind)) - args.append("/TC"); - else if (ProjectFile::isCxx(kind)) - args.append("/TP"); + if (!ProjectFile::isObjC(kind)) { + if (ProjectFile::isC(kind)) + args.append("/TC"); + else if (ProjectFile::isCxx(kind)) + args.append("/TP"); + } } else { QStringList langOption = createLanguageOptionGcc(projectPart.language, kind, diff --git a/src/plugins/cppeditor/compileroptionsbuilder.cpp b/src/plugins/cppeditor/compileroptionsbuilder.cpp index 2b40528dd39..cf2fc6b97e8 100644 --- a/src/plugins/cppeditor/compileroptionsbuilder.cpp +++ b/src/plugins/cppeditor/compileroptionsbuilder.cpp @@ -426,7 +426,7 @@ void CompilerOptionsBuilder::addMacros(const Macros ¯os) void CompilerOptionsBuilder::updateFileLanguage(ProjectFile::Kind fileKind) { - if (isClStyle()) { + if (isClStyle() && !ProjectFile::isObjC(fileKind)) { QString option; if (ProjectFile::isC(fileKind)) option = "/TC"; diff --git a/src/plugins/cppeditor/cppprojectfile.cpp b/src/plugins/cppeditor/cppprojectfile.cpp index c28f41a2291..d649e70121d 100644 --- a/src/plugins/cppeditor/cppprojectfile.cpp +++ b/src/plugins/cppeditor/cppprojectfile.cpp @@ -67,7 +67,11 @@ bool ProjectFile::isAmbiguousHeader(const QString &filePath) bool ProjectFile::isObjC(const QString &filePath) { - const Kind kind = classify(filePath); + return isObjC(classify(filePath)); +} + +bool ProjectFile::isObjC(Kind kind) +{ switch (kind) { case CppEditor::ProjectFile::ObjCHeader: case CppEditor::ProjectFile::ObjCXXHeader: diff --git a/src/plugins/cppeditor/cppprojectfile.h b/src/plugins/cppeditor/cppprojectfile.h index 71310fec8a2..8b16236c01a 100644 --- a/src/plugins/cppeditor/cppprojectfile.h +++ b/src/plugins/cppeditor/cppprojectfile.h @@ -43,6 +43,7 @@ public: static bool isCxx(Kind kind); static bool isAmbiguousHeader(const QString &filePath); static bool isObjC(const QString &filePath); + static bool isObjC(Kind kind); bool isHeader() const; bool isSource() const;