From 00237744117bd9ca5ce13cafa21203fe4decd8d9 Mon Sep 17 00:00:00 2001 From: Topi Reinio Date: Thu, 29 Aug 2013 09:10:52 +0200 Subject: qdoc: Enable support for rvalue references in function signatures qdoc interprets the double-ampersand in function parameters using rvalue references (e.g. 'Type &&other') incorrectly as a logical AND operator, resulting in a syntax error. This change works around the issue by treating '&' the same as '*', and defining Q_COMPILER_RVALUE_REFS for qdoc. Task-number: QTBUG-32675 Change-Id: I499611f16f22c33ff5b878da0cd59d67ddf53d72 Reviewed-by: Giuseppe D'Angelo Reviewed-by: Jerome Pasion Reviewed-by: Martin Smith --- src/tools/qdoc/tokenizer.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'src/tools') diff --git a/src/tools/qdoc/tokenizer.cpp b/src/tools/qdoc/tokenizer.cpp index 224d451f4c..e1ca28eef8 100644 --- a/src/tools/qdoc/tokenizer.cpp +++ b/src/tools/qdoc/tokenizer.cpp @@ -237,7 +237,11 @@ int Tokenizer::getToken() return getTokenAfterPreprocessor(); case '&': yyCh = getChar(); - if (yyCh == '&' || yyCh == '=') { + /* + Removed check for '&&', only interpret '&=' as an operator. + '&&' is also used for an rvalue reference. QTBUG-32675 + */ + if (yyCh == '=') { yyCh = getChar(); return Tok_SomeOperator; } -- cgit v1.2.3