From 2fe90a61bdf16bb1a08817ba544e2309b524a052 Mon Sep 17 00:00:00 2001 From: Thiago Macieira Date: Mon, 30 Jun 2014 14:34:39 -0700 Subject: Mark all QChar static functions as [[gnu::const]] The GCC documentation says that a const function is not allowed to read global memory. This needs to be clarified: it's not allowed to read RW global memory. It's fine to read read-only memory, as that is equivalent to just pure code. The QChar static out-of-line functions only lookup a property of the given Unicode character and always return the same value. The only exception is the decomposition() function, which returns a QString and is therefore not allowed to be marked const. Change-Id: Id36b2f84a1b8ff9db5acf1d4e59e8b3811068cff Reviewed-by: Konstantin Ritt Reviewed-by: Giuseppe D'Angelo --- util/unicode/main.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'util/unicode') diff --git a/util/unicode/main.cpp b/util/unicode/main.cpp index 4f941d0eb3..0747238b8e 100644 --- a/util/unicode/main.cpp +++ b/util/unicode/main.cpp @@ -2401,24 +2401,24 @@ static QByteArray createPropertyInfo() out += "\n};\n\n"; - out += "static inline const Properties *qGetProp(uint ucs4)\n" + out += "Q_DECL_CONST_FUNCTION static inline const Properties *qGetProp(uint ucs4)\n" "{\n" " const int index = GET_PROP_INDEX(ucs4);\n" " return uc_properties + index;\n" "}\n" "\n" - "static inline const Properties *qGetProp(ushort ucs2)\n" + "Q_DECL_CONST_FUNCTION static inline const Properties *qGetProp(ushort ucs2)\n" "{\n" " const int index = GET_PROP_INDEX_UCS2(ucs2);\n" " return uc_properties + index;\n" "}\n" "\n" - "Q_CORE_EXPORT const Properties * QT_FASTCALL properties(uint ucs4)\n" + "Q_DECL_CONST_FUNCTION Q_CORE_EXPORT const Properties * QT_FASTCALL properties(uint ucs4)\n" "{\n" " return qGetProp(ucs4);\n" "}\n" "\n" - "Q_CORE_EXPORT const Properties * QT_FASTCALL properties(ushort ucs2)\n" + "Q_DECL_CONST_FUNCTION Q_CORE_EXPORT const Properties * QT_FASTCALL properties(ushort ucs2)\n" "{\n" " return qGetProp(ucs2);\n" "}\n\n"; -- cgit v1.2.3