summaryrefslogtreecommitdiff
path: root/src/parsers/decl
diff options
context:
space:
mode:
authorAndrei Karas <akaras@inbox.ru>2015-06-07 13:22:52 +0300
committerAndrei Karas <akaras@inbox.ru>2015-06-07 13:22:52 +0300
commit44cf7b096b5f93adce4f316ff1c75af8be004705 (patch)
tree20dc5f8fc73b4da3b773066eace8fca635d41558 /src/parsers/decl
parent070a91cfa376da74c781bd7a152785b103e00eea (diff)
downloadparanucker-44cf7b096b5f93adce4f316ff1c75af8be004705.tar.gz
paranucker-44cf7b096b5f93adce4f316ff1c75af8be004705.tar.bz2
paranucker-44cf7b096b5f93adce4f316ff1c75af8be004705.tar.xz
paranucker-44cf7b096b5f93adce4f316ff1c75af8be004705.zip
Add some missing fields in parsed nodes.
Diffstat (limited to 'src/parsers/decl')
-rw-r--r--src/parsers/decl/function_decl.cpp6
-rw-r--r--src/parsers/decl/parm_decl.cpp1
-rw-r--r--src/parsers/decl/result_decl.cpp11
-rw-r--r--src/parsers/decl/var_decl.cpp3
4 files changed, 18 insertions, 3 deletions
diff --git a/src/parsers/decl/function_decl.cpp b/src/parsers/decl/function_decl.cpp
index d7e6ecc..0cf4b19 100644
--- a/src/parsers/decl/function_decl.cpp
+++ b/src/parsers/decl/function_decl.cpp
@@ -34,14 +34,16 @@ void parseFunctionDeclNode(FunctionDeclNode *node)
fillType(node);
fillLocation(node);
fillDeclLabel(node);
- Log::log(node);
-
fillDeclAutoGenerated(node);
setPrintField(node, DECL_FUNCTION_VERSIONED, hasTargets);
setPrintField(node, DECL_VIRTUAL_P, isVirtual);
setPrintField(node, DECL_FINAL_P, isFinal);
setPrintField(node, TREE_READONLY, isConst);
setPrintField(node, DECL_PURE_P, isPure);
+ setPrintField(node, DECL_EXTERNAL, isExternal);
+ setPrintField(node, TREE_PUBLIC, isPublic);
+
+ Log::log(node);
fillDeclAttributes(node);
node->functionType = static_cast<FunctionTypeNode*>(createParseNode(
diff --git a/src/parsers/decl/parm_decl.cpp b/src/parsers/decl/parm_decl.cpp
index 4d305dd..fd314db 100644
--- a/src/parsers/decl/parm_decl.cpp
+++ b/src/parsers/decl/parm_decl.cpp
@@ -34,6 +34,7 @@ void parseParmDeclNode(ParmDeclNode *node)
fillLocation(node);
fillDeclLabel(node);
setPrintField(node, DECL_REGISTER, isRegister);
+ setPrintField(node, TREE_USED, isUsed);
Log::log(node);
diff --git a/src/parsers/decl/result_decl.cpp b/src/parsers/decl/result_decl.cpp
index 163e757..8a85c47 100644
--- a/src/parsers/decl/result_decl.cpp
+++ b/src/parsers/decl/result_decl.cpp
@@ -44,6 +44,17 @@ void parseResultDeclNode(ResultDeclNode *node)
node,
TREE_TYPE(node->gccNode),
"result type"));
+
+ node->declSize = static_cast<IntegerCstNode*>(createParseNode(
+ node,
+ DECL_SIZE(node->gccNode),
+ INTEGER_CST,
+ "decl size"));
+
+ node->initial = createParseNode(
+ node,
+ DECL_INITIAL(node->gccNode),
+ "initial");
}
}
diff --git a/src/parsers/decl/var_decl.cpp b/src/parsers/decl/var_decl.cpp
index 99b1fe0..5c411f7 100644
--- a/src/parsers/decl/var_decl.cpp
+++ b/src/parsers/decl/var_decl.cpp
@@ -36,6 +36,8 @@ void parseVarDeclNode(VarDeclNode *node)
fillLocation(node);
fillDeclLabel(node);
setPrintField(node, DECL_THIS_STATIC, isStatic);
+ setPrintField(node, DECL_REGISTER, isRegister);
+ setPrintField(node, TREE_USED, isUsed);
Log::log(node);
@@ -53,7 +55,6 @@ void parseVarDeclNode(VarDeclNode *node)
TREE_TYPE(node->gccNode),
"var type"));
-
node->initial = createParseNode(
node,
DECL_INITIAL(node->gccNode),