diff --git a/share/qtcreator/styles/darkvim.xml b/share/qtcreator/styles/darkvim.xml
index a7f0f924ab8..afe1d939424 100644
--- a/share/qtcreator/styles/darkvim.xml
+++ b/share/qtcreator/styles/darkvim.xml
@@ -14,7 +14,6 @@
   
   
   
-  
   
   
   
diff --git a/share/qtcreator/styles/grayscale.xml b/share/qtcreator/styles/grayscale.xml
index c1a29c20545..b31ecd7815a 100644
--- a/share/qtcreator/styles/grayscale.xml
+++ b/share/qtcreator/styles/grayscale.xml
@@ -8,7 +8,6 @@
   
   
   
-  
   
   
   
diff --git a/share/qtcreator/styles/inkpot.xml b/share/qtcreator/styles/inkpot.xml
index 730c170f56f..7b24f8ada8a 100644
--- a/share/qtcreator/styles/inkpot.xml
+++ b/share/qtcreator/styles/inkpot.xml
@@ -19,7 +19,6 @@
   
   
   
-  
   
   
   
diff --git a/share/qtcreator/styles/intellij.xml b/share/qtcreator/styles/intellij.xml
index dfe5f7afd59..b98500b620c 100644
--- a/share/qtcreator/styles/intellij.xml
+++ b/share/qtcreator/styles/intellij.xml
@@ -8,7 +8,6 @@
   
   
   
-  
   
   
   
diff --git a/src/plugins/cppeditor/cppeditor.cpp b/src/plugins/cppeditor/cppeditor.cpp
index 566b5b634ce..b18cc1dacb9 100644
--- a/src/plugins/cppeditor/cppeditor.cpp
+++ b/src/plugins/cppeditor/cppeditor.cpp
@@ -1047,11 +1047,6 @@ void CPPEditorWidget::finishHighlightSymbolUsages()
 
     TextEditor::SemanticHighlighter::clearExtraAdditionalFormatsUntilEnd(
                 highlighter, m_highlighter);
-
-    if (m_modelManager)
-        m_modelManager->setExtraDiagnostics(m_lastSemanticInfo.doc->fileName(),
-                                            CPlusPlus::CppModelManagerInterface::CppSemanticsDiagnostic,
-                                            m_lastSemanticInfo.doc->diagnosticMessages());
 }
 
 
@@ -1748,8 +1743,6 @@ void CPPEditorWidget::setFontSettings(const TextEditor::FontSettings &fs)
             fs.toTextCharFormat(QLatin1String(TextEditor::Constants::C_VIRTUAL_METHOD));
     m_semanticHighlightFormatMap[SemanticInfo::LabelUse] =
             fs.toTextCharFormat(QLatin1String(TextEditor::Constants::C_LABEL));
-    m_semanticHighlightFormatMap[SemanticInfo::FunctionUse] =
-            fs.toTextCharFormat(QLatin1String(TextEditor::Constants::C_FUNCTION));
     m_keywordFormat = fs.toTextCharFormat(QLatin1String(TextEditor::Constants::C_KEYWORD));
 
     // only set the background, we do not want to modify foreground properties set by the syntax highlighter or the link
diff --git a/src/plugins/cpptools/ModelManagerInterface.h b/src/plugins/cpptools/ModelManagerInterface.h
index 8bab7086e83..b873e880fe9 100644
--- a/src/plugins/cpptools/ModelManagerInterface.h
+++ b/src/plugins/cpptools/ModelManagerInterface.h
@@ -179,8 +179,7 @@ public:
     enum ExtraDiagnosticKind
     {
         AllExtraDiagnostics = -1,
-        ExportedQmlTypesDiagnostic,
-        CppSemanticsDiagnostic
+        ExportedQmlTypesDiagnostic
     };
 
 public:
diff --git a/src/plugins/cpptools/cppchecksymbols.cpp b/src/plugins/cpptools/cppchecksymbols.cpp
index 2330e037c03..a2d1d6dcf07 100644
--- a/src/plugins/cpptools/cppchecksymbols.cpp
+++ b/src/plugins/cpptools/cppchecksymbols.cpp
@@ -68,7 +68,6 @@ class CollectSymbols: protected SymbolVisitor
     Snapshot _snapshot;
     QSet _types;
     QSet _members;
-    QSet _functions;
     QSet _virtualMethods;
     QSet _statics;
     bool _mainDocument;
@@ -91,11 +90,6 @@ public:
         return _members;
     }
 
-    const QSet &functions() const
-    {
-        return _functions;
-    }
-
     const QSet &virtualMethods() const
     {
         return _virtualMethods;
@@ -155,17 +149,6 @@ protected:
         }
     }
 
-    void addFunction(const Name *name)
-    {
-        if (! name) {
-            return;
-
-        } else if (name->isNameId()) {
-            const Identifier *id = name->identifier();
-            _functions.insert(QByteArray::fromRawData(id->chars(), id->size()));
-        }
-    }
-
     void addVirtualMethod(const Name *name)
     {
         if (! name) {
@@ -200,8 +183,6 @@ protected:
     {
         if (symbol->isVirtual())
             addVirtualMethod(symbol->name());
-        else
-            addFunction(symbol->name());
 
         return true;
     }
@@ -225,8 +206,6 @@ protected:
         if (Function *funTy = symbol->type()->asFunctionType()) {
             if (funTy->isVirtual())
                 addVirtualMethod(symbol->name());
-            else
-                addFunction(symbol->name());
         }
 
         if (symbol->isTypedef())
@@ -321,7 +300,6 @@ CheckSymbols::CheckSymbols(Document::Ptr doc, const LookupContext &context)
     _fileName = doc->fileName();
     _potentialTypes = collectTypes.types();
     _potentialMembers = collectTypes.members();
-    _potentialFunctions = collectTypes.functions();
     _potentialVirtualMethods = collectTypes.virtualMethods();
     _potentialStatics = collectTypes.statics();
 
@@ -348,7 +326,7 @@ void CheckSymbols::run()
 bool CheckSymbols::warning(unsigned line, unsigned column, const QString &text, unsigned length)
 {
     Document::DiagnosticMessage m(Document::DiagnosticMessage::Warning, _fileName, line, column, text, length);
-    _doc->addDiagnosticMessage(m);
+    _diagnosticMessages.append(m);
     return false;
 }
 
@@ -499,8 +477,6 @@ bool CheckSymbols::visit(SimpleDeclarationAST *ast)
                         addUse(declId, SemanticInfo::VirtualMethodUse);
                     } else if (maybeVirtualMethod(decl->name())) {
                         addVirtualMethod(_context.lookup(decl->name(), decl->enclosingScope()), declId, funTy->argumentCount());
-                    } else {
-                        addUse(declId, SemanticInfo::FunctionUse);
                     }
                 }
             }
@@ -559,7 +535,7 @@ bool CheckSymbols::visit(CallAST *ast)
 
         if (MemberAccessAST *access = ast->base_expression->asMemberAccess()) {
             if (access->member_name && access->member_name->name) {
-                if (maybeVirtualMethod(access->member_name->name) || maybeFunction(access->member_name->name)) {
+                if (maybeVirtualMethod(access->member_name->name)) {
                     const QByteArray expression = textOf(access);
 
                     const QList candidates =
@@ -575,7 +551,7 @@ bool CheckSymbols::visit(CallAST *ast)
             }
         } else if (IdExpressionAST *idExpr = ast->base_expression->asIdExpression()) {
             if (const Name *name = idExpr->name->name) {
-                if (maybeVirtualMethod(name) || maybeFunction(name)) {
+                if (maybeVirtualMethod(name)) {
                     NameAST *exprName = idExpr->name;
                     if (QualifiedNameAST *q = exprName->asQualifiedName())
                         exprName = q->unqualified_name;
@@ -675,8 +651,6 @@ void CheckSymbols::checkName(NameAST *ast, Scope *scope)
             Class *klass = scope->asClass();
             if (hasVirtualDestructor(_context.lookupType(klass)))
                 addUse(ast, SemanticInfo::VirtualMethodUse);
-            else
-                addUse(ast, SemanticInfo::FunctionUse);
         } else if (maybeType(ast->name) || maybeStatic(ast->name)) {
             const QList candidates = _context.lookup(ast->name, scope);
             addTypeOrStatic(candidates, ast);
@@ -705,14 +679,6 @@ bool CheckSymbols::visit(DestructorNameAST *ast)
     return true;
 }
 
-bool CheckSymbols::visit(ParameterDeclarationAST *ast)
-{
-    accept(ast->type_specifier_list);
-    // Skip parameter name, it does not need to be colored
-    accept(ast->expression);
-    return false;
-}
-
 bool CheckSymbols::visit(QualifiedNameAST *ast)
 {
     if (ast->name) {
@@ -756,8 +722,6 @@ bool CheckSymbols::visit(QualifiedNameAST *ast)
             if (ast->unqualified_name->asDestructorName() != 0) {
                 if (hasVirtualDestructor(binding))
                     addUse(ast->unqualified_name, SemanticInfo::VirtualMethodUse);
-                else
-                    addUse(ast->unqualified_name, SemanticInfo::FunctionUse);
             } else {
                 addTypeOrStatic(binding->find(ast->unqualified_name->name), ast->unqualified_name);
             }
@@ -838,8 +802,6 @@ bool CheckSymbols::visit(FunctionDefinitionAST *ast)
                 addUse(declId, SemanticInfo::VirtualMethodUse);
             } else if (maybeVirtualMethod(fun->name())) {
                 addVirtualMethod(_context.lookup(fun->name(), fun->enclosingScope()), declId, fun->argumentCount());
-            } else {
-                addUse(declId, SemanticInfo::FunctionUse);
             }
         }
     }
@@ -1061,49 +1023,30 @@ void CheckSymbols::addVirtualMethod(const QList &candidates, NameAST
     if (tok.generated())
         return;
 
-    enum { Match_None, Match_TooManyArgs, Match_TooFewArgs, Match_Ok } matchType = Match_None;
-    SemanticInfo::UseKind kind = SemanticInfo::FunctionUse;
     foreach (const LookupItem &r, candidates) {
         Symbol *c = r.declaration();
         if (! c)
             continue;
 
-        Function *funTy = c->type()->asFunctionType();
-        if (! funTy) {
-            //Try to find a template function
-            if (Template * t = r.type()->asTemplateType())
-                if ((c = t->declaration()))
-                    funTy = c->type()->asFunctionType();
-        }
+        Function *funTy = r.type()->asFunctionType();
         if (! funTy)
-            continue; // TODO: add diagnostic messages and color call-operators calls too?
+            continue;
+        if (! funTy->isVirtual())
+            continue;
+        else if (argumentCount < funTy->minimumArgumentCount())
+            continue;
+        else if (argumentCount > funTy->argumentCount()) {
+            if (! funTy->isVariadic())
+                continue;
+        }
 
-        kind = funTy->isVirtual() ? SemanticInfo::VirtualMethodUse : SemanticInfo::FunctionUse;
-        if (argumentCount < funTy->minimumArgumentCount()) {
-            matchType = Match_TooFewArgs;
-        }
-        else if (argumentCount > funTy->argumentCount() && ! funTy->isVariadic()) {
-            matchType = Match_TooManyArgs;
-        }
-        else {
-            matchType = Match_Ok;
-            break;
-        }
-    }
-
-    if (matchType != Match_None) {
         unsigned line, column;
         getTokenStartPosition(startToken, &line, &column);
         const unsigned length = tok.length();
 
-        // Add a diagnostic message if argument count does not match
-        if (matchType == Match_TooFewArgs)
-            warning(line, column, "Too few arguments", length);
-        else if (matchType == Match_TooManyArgs)
-            warning(line, column, "Too many arguments", length);
-
-        const Use use(line, column, length, kind);
+        const Use use(line, column, length, SemanticInfo::VirtualMethodUse);
         addUse(use);
+        break;
     }
 }
 
@@ -1177,19 +1120,6 @@ static bool sortByLinePredicate(const CheckSymbols::Use &lhs, const CheckSymbols
     return lhs.line < rhs.line;
 }
 
-bool CheckSymbols::maybeFunction(const Name *name) const
-{
-    if (name) {
-        if (const Identifier *ident = name->identifier()) {
-            const QByteArray id = QByteArray::fromRawData(ident->chars(), ident->size());
-            if (_potentialFunctions.contains(id))
-                return true;
-        }
-    }
-
-    return false;
-}
-
 void CheckSymbols::flush()
 {
     _lineOfLastUsage = 0;
diff --git a/src/plugins/cpptools/cppchecksymbols.h b/src/plugins/cpptools/cppchecksymbols.h
index 3efe7439950..56dfc541f5e 100644
--- a/src/plugins/cpptools/cppchecksymbols.h
+++ b/src/plugins/cpptools/cppchecksymbols.h
@@ -107,7 +107,6 @@ protected:
     bool maybeType(const Name *name) const;
     bool maybeMember(const Name *name) const;
     bool maybeStatic(const Name *name) const;
-    bool maybeFunction(const Name *name) const;
     bool maybeVirtualMethod(const Name *name) const;
 
     void checkName(NameAST *ast, Scope *scope = 0);
@@ -143,7 +142,6 @@ protected:
 
     virtual bool visit(SimpleNameAST *ast);
     virtual bool visit(DestructorNameAST *ast);
-    virtual bool visit(ParameterDeclarationAST *ast);
     virtual bool visit(QualifiedNameAST *ast);
     virtual bool visit(TemplateIdAST *ast);
 
@@ -171,7 +169,6 @@ private:
     QList _diagnosticMessages;
     QSet _potentialTypes;
     QSet _potentialMembers;
-    QSet _potentialFunctions;
     QSet _potentialVirtualMethods;
     QSet _potentialStatics;
     QList _astStack;
diff --git a/src/plugins/cpptools/cppmodelmanager.cpp b/src/plugins/cpptools/cppmodelmanager.cpp
index 724f44affa9..8611e4f5f3d 100644
--- a/src/plugins/cpptools/cppmodelmanager.cpp
+++ b/src/plugins/cpptools/cppmodelmanager.cpp
@@ -1151,19 +1151,13 @@ void CppModelManager::updateEditor(Document::Ptr doc)
 
                     QTextCursor c(ed->document()->findBlockByNumber(m.line() - 1));
                     const QString text = c.block().text();
-                    if (m.length() > 0 && m.column() + m.length() < (unsigned)text.size()) {
-                        int column = m.column() > 0 ? m.column() - 1 : 0;
-                        c.setPosition(c.position() + column);
-                        c.movePosition(QTextCursor::NextCharacter, QTextCursor::KeepAnchor, m.length());
-                    } else {
-                        for (int i = 0; i < text.size(); ++i) {
-                            if (! text.at(i).isSpace()) {
-                                c.setPosition(c.position() + i);
-                                break;
-                            }
+                    for (int i = 0; i < text.size(); ++i) {
+                        if (! text.at(i).isSpace()) {
+                            c.setPosition(c.position() + i);
+                            break;
                         }
-                        c.movePosition(QTextCursor::EndOfBlock, QTextCursor::KeepAnchor);
                     }
+                    c.movePosition(QTextCursor::EndOfBlock, QTextCursor::KeepAnchor);
                     sel.cursor = c;
                     sel.format.setToolTip(m.text());
                     e.selections.append(sel);
diff --git a/src/plugins/cpptools/cppsemanticinfo.h b/src/plugins/cpptools/cppsemanticinfo.h
index acc1705424b..cf61b745592 100644
--- a/src/plugins/cpptools/cppsemanticinfo.h
+++ b/src/plugins/cpptools/cppsemanticinfo.h
@@ -52,8 +52,7 @@ public:
         FieldUse,
         StaticUse,
         VirtualMethodUse,
-        LabelUse,
-        FunctionUse
+        LabelUse
     };
     typedef TextEditor::SemanticHighlighter::Result Use;
 
diff --git a/src/plugins/texteditor/texteditorconstants.h b/src/plugins/texteditor/texteditorconstants.h
index b442933cadf..0fc099368be 100644
--- a/src/plugins/texteditor/texteditorconstants.h
+++ b/src/plugins/texteditor/texteditorconstants.h
@@ -129,7 +129,6 @@ const char C_TYPE[]                = "Type";
 const char C_LOCAL[]               = "Local";
 const char C_FIELD[]               = "Field";
 const char C_STATIC[]              = "Static";
-const char C_FUNCTION[]            = "Function";
 const char C_VIRTUAL_METHOD[]      = "VirtualMethod";
 const char C_KEYWORD[]             = "Keyword";
 const char C_OPERATOR[]            = "Operator";
diff --git a/src/plugins/texteditor/texteditorsettings.cpp b/src/plugins/texteditor/texteditorsettings.cpp
index ece07447576..717a3f267eb 100644
--- a/src/plugins/texteditor/texteditorsettings.cpp
+++ b/src/plugins/texteditor/texteditorsettings.cpp
@@ -145,7 +145,6 @@ TextEditorSettings::TextEditorSettings(QObject *parent)
     formatDescriptions.append(FormatDescription(QLatin1String(C_FIELD), tr("Field"), Qt::darkRed));
     formatDescriptions.append(FormatDescription(QLatin1String(C_STATIC), tr("Static"), Qt::darkMagenta));
 
-    formatDescriptions.append(FormatDescription(QLatin1String(C_FUNCTION), tr("Function")));
     FormatDescription virtualMethodFormatDescriptor(QLatin1String(C_VIRTUAL_METHOD), tr("Virtual Method"));
     virtualMethodFormatDescriptor.format().setItalic(true);
     formatDescriptions.append(virtualMethodFormatDescriptor);