forked from qt-creator/qt-creator
Accept gcc attributes in cv-qualifiers.
This commit is contained in:
@@ -751,6 +751,9 @@ bool Parser::parseCvQualifiers(SpecifierAST *&node)
|
|||||||
spec->specifier_token = consumeToken();
|
spec->specifier_token = consumeToken();
|
||||||
*ast = spec;
|
*ast = spec;
|
||||||
ast = &(*ast)->next;
|
ast = &(*ast)->next;
|
||||||
|
} else if(LA() == T___ATTRIBUTE__) {
|
||||||
|
parseAttributeSpecifier(*ast);
|
||||||
|
ast = &(*ast)->next;
|
||||||
} else {
|
} else {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@@ -1,5 +1,4 @@
|
|||||||
load(qttest_p4)
|
load(qttest_p4)
|
||||||
include(../shared/shared.pri)
|
include(../shared/shared.pri)
|
||||||
QT = core
|
QT = core
|
||||||
|
|
||||||
SOURCES += tst_ast.cpp
|
SOURCES += tst_ast.cpp
|
||||||
|
@@ -36,6 +36,9 @@ public:
|
|||||||
{ return parse(source, TranslationUnit::ParseStatement); }
|
{ return parse(source, TranslationUnit::ParseStatement); }
|
||||||
|
|
||||||
private slots:
|
private slots:
|
||||||
|
// declarations
|
||||||
|
void gcc_attributes_1();
|
||||||
|
|
||||||
// expressions
|
// expressions
|
||||||
void simple_name();
|
void simple_name();
|
||||||
void template_id();
|
void template_id();
|
||||||
@@ -54,6 +57,13 @@ private slots:
|
|||||||
void objc_protocol_definition_1();
|
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()
|
void tst_AST::simple_name()
|
||||||
{
|
{
|
||||||
QSharedPointer<TranslationUnit> unit(parseExpression("a"));
|
QSharedPointer<TranslationUnit> unit(parseExpression("a"));
|
||||||
|
@@ -5,3 +5,4 @@
|
|||||||
#define __asm__(a...)
|
#define __asm__(a...)
|
||||||
#define restrict
|
#define restrict
|
||||||
#define __restrict
|
#define __restrict
|
||||||
|
#define __weak
|
||||||
|
Reference in New Issue
Block a user