From 653b81427c46d7569b6434705494f47ec19bc70f Mon Sep 17 00:00:00 2001 From: Roberto Raggi <qtc-committer@nokia.com> Date: Wed, 14 Jan 2009 15:16:02 +0100 Subject: [PATCH] Accept gcc attributes in cv-qualifiers. --- shared/cplusplus/Parser.cpp | 3 +++ tests/auto/cplusplus/ast/ast.pro | 1 - tests/auto/cplusplus/ast/tst_ast.cpp | 10 ++++++++++ tests/manual/cplusplus/conf.c++ | 1 + 4 files changed, 14 insertions(+), 1 deletion(-) diff --git a/shared/cplusplus/Parser.cpp b/shared/cplusplus/Parser.cpp index ae9f39469a0..eefa3d5b9fe 100644 --- a/shared/cplusplus/Parser.cpp +++ b/shared/cplusplus/Parser.cpp @@ -751,6 +751,9 @@ bool Parser::parseCvQualifiers(SpecifierAST *&node) spec->specifier_token = consumeToken(); *ast = spec; ast = &(*ast)->next; + } else if(LA() == T___ATTRIBUTE__) { + parseAttributeSpecifier(*ast); + ast = &(*ast)->next; } else { break; } diff --git a/tests/auto/cplusplus/ast/ast.pro b/tests/auto/cplusplus/ast/ast.pro index 6974c6bbb4c..39fd14105de 100644 --- a/tests/auto/cplusplus/ast/ast.pro +++ b/tests/auto/cplusplus/ast/ast.pro @@ -1,5 +1,4 @@ load(qttest_p4) include(../shared/shared.pri) QT = core - SOURCES += tst_ast.cpp diff --git a/tests/auto/cplusplus/ast/tst_ast.cpp b/tests/auto/cplusplus/ast/tst_ast.cpp index 5756d2dd224..689da076ea1 100644 --- a/tests/auto/cplusplus/ast/tst_ast.cpp +++ b/tests/auto/cplusplus/ast/tst_ast.cpp @@ -36,6 +36,9 @@ public: { return parse(source, TranslationUnit::ParseStatement); } private slots: + // declarations + void gcc_attributes_1(); + // expressions void simple_name(); void template_id(); @@ -54,6 +57,13 @@ private slots: void objc_protocol_definition_1(); }; +void tst_AST::gcc_attributes_1() +{ + QSharedPointer<TranslationUnit> unit(parseDeclaration("\n" +"static inline void *__attribute__((__always_inline__)) _mm_malloc(size_t size, size_t align);" + )); +} + void tst_AST::simple_name() { QSharedPointer<TranslationUnit> unit(parseExpression("a")); diff --git a/tests/manual/cplusplus/conf.c++ b/tests/manual/cplusplus/conf.c++ index fbfad57a4bc..c179f979272 100644 --- a/tests/manual/cplusplus/conf.c++ +++ b/tests/manual/cplusplus/conf.c++ @@ -5,3 +5,4 @@ #define __asm__(a...) #define restrict #define __restrict +#define __weak -- GitLab