From 64a08d15f306e56e2143f5f65de6d394c49d3a61 Mon Sep 17 00:00:00 2001
From: Roberto Raggi <roberto.raggi@nokia.com>
Date: Wed, 4 Nov 2009 13:47:06 +0100
Subject: [PATCH] Parse ASM specifiers after declarators.

Again, a gcc extension used in the OSX system headers.
---
 src/shared/cplusplus/Parser.cpp | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/src/shared/cplusplus/Parser.cpp b/src/shared/cplusplus/Parser.cpp
index 835b2c11c89..ca26cb629e3 100644
--- a/src/shared/cplusplus/Parser.cpp
+++ b/src/shared/cplusplus/Parser.cpp
@@ -1200,6 +1200,14 @@ bool Parser::parseDeclarator(DeclaratorAST *&node, bool stopAtCppInitializer)
             break;
     }
 
+    if (LA() == T___ASM__ && LA(2) == T_LPAREN) { // ### store the asm specifier in the AST
+        consumeToken(); // skip __asm__
+        consumeToken(); // skip T_LPAREN
+
+        if (skipUntil(T_RPAREN))
+            consumeToken(); // skip T_RPAREN
+    }
+
     SpecifierAST **spec_ptr = &node->post_attributes;
     while (LA() == T___ATTRIBUTE__) {
         parseAttributeSpecifier(*spec_ptr);
-- 
GitLab