diff --git a/plugins/clang/util/clangutils.cpp b/plugins/clang/util/clangutils.cpp index ebcdaadce1326f97458de5cdde8f020b222acad1..da10d6bc0ffeac66defc8de9ec2b6cbaea23c1e3 100644 --- a/plugins/clang/util/clangutils.cpp +++ b/plugins/clang/util/clangutils.cpp @@ -198,8 +198,16 @@ QVector ClangUtils::getDefaultArguments(CXCursor cursor, DefaultArgumen const QString result = info.stringParts.join(QString()); if (mode == FixedSize) { arguments.replace(i, result); - } else if (!result.isEmpty()) { - arguments << result; + } else { + if (!result.isEmpty()) { + arguments << result; + } else if (!arguments.isEmpty()) { + // TODO: paramVisitor fails to report macros like INT_MAX or QStringLiteral as default values, + // only returns an empty string. To not have the order of default values + // not match the order of arguments, insert a placeholder for now + // See https://bugs.kde.org/show_bug.cgi?id=369546 + arguments << QStringLiteral(""); + } } } return arguments;