Skip to content

Commit 396b2c3

Browse files
committed
Fixes.
1 parent 92bd95a commit 396b2c3

File tree

3 files changed

+23
-17
lines changed

3 files changed

+23
-17
lines changed

clang-tools/ClangKast/GetKastVisitor.h

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1070,7 +1070,13 @@ class GetKastVisitor
10701070
if (T->getSizeModifier() != clang::ArrayType::Normal) {
10711071
throw std::logic_error("unimplemented: static/* array");
10721072
}
1073-
Kast::add(Kast::KApply("ArrayType", Sort::ATYPE, {Sort::ATYPE, sort}));
1073+
string arr;
1074+
if (sort == Sort::AEXPR) {
1075+
arr = "ArrayTypeAExpr";
1076+
} else {
1077+
arr = "ArrayType";
1078+
}
1079+
Kast::add(Kast::KApply(arr, Sort::ATYPE, {Sort::ATYPE, sort}));
10741080
TRY_TO(TraverseType(T->getElementType()));
10751081
return true;
10761082
}

semantics/cpp/language/translation/syntax.k

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ module CPP-ABSTRACT-SYNTAX
6161

6262
syntax StorageClassSpecifier ::= Mutable() [symbol]
6363

64-
// syntax FunctionSpecifier ::= Explicit() [symbol]
64+
syntax FunctionSpecifier ::= Explicit()
6565

6666
syntax Specifier ::= StorageClassSpecifier | FunctionSpecifier
6767
| Constexpr() [symbol]
@@ -109,7 +109,7 @@ module CPP-ABSTRACT-SYNTAX
109109
syntax AType ::= CPPType
110110
| ATypeResult
111111
| ElaboratedTypeSpecifier(Tag, CId, NNS) [symbol]
112-
| ElaboratedTypeSpecifier(Tag, CId, NNS, List) // TODO(chathhorn): make symbol
112+
| ElaboratedTypeSpecifier(Tag, CId, NNS, List)
113113
| FunctionPrototype(AType, StrictList, ExceptionSpec, Bool) [strict(1), symbol]
114114
| MethodPrototype(Bool, Bool, AType, AType) [strict(3, 4), symbol]
115115
| StaticMethodPrototype(AType) [strict, symbol]
@@ -120,15 +120,15 @@ module CPP-ABSTRACT-SYNTAX
120120
| PointerType(AType) [strict, symbol]
121121
| MemberPointerType(AType, AType) [strict, symbol]
122122
| ArrayType(AType, Int) [strict(1), symbol]
123-
| ArrayType(AType, AExpr) [strict(1)]
123+
| ArrayTypeAExpr(AType, AExpr) [strict(1), symbol]
124124
| TypedefType(CId) [symbol]
125125
| QualifiedTypeName(Tag, NNS, AType) [symbol]
126126
| Decltype(Expr) [symbol]
127127
| TemplateParameterType(CId) [symbol]
128128
| LValRefType(AType) [strict, symbol]
129129
| RValRefType(AType) [strict, symbol]
130-
| TemplateSpecializationType(CId) [symbol]
131130
| TemplateSpecializationType(CId, List) [symbol]
131+
| TemplateSpecializationType2(CId) [symbol]
132132
| PackExpansionType(AType) [symbol]
133133
| AutoType(Bool) [symbol]
134134
| Name
@@ -183,28 +183,28 @@ module CPP-ABSTRACT-SYNTAX
183183
| TBreakStmt() [symbol]
184184
| ContinueStmt() [symbol]
185185
| ReturnStmt(Init) [symbol]
186-
| IfTStmt(Decl, Stmt, Stmt) [symbol]
187-
| IfTStmt(Expr, Stmt, Stmt) [symbol]
188-
| WhileTStmt(Decl, Stmt) [symbol]
189-
| WhileTStmt(Expr, Stmt) [symbol]
186+
| IfTStmt(Decl, Stmt, Stmt)
187+
| IfTStmt(Expr, Stmt, Stmt)
188+
| WhileTStmt(Decl, Stmt)
189+
| WhileTStmt(Expr, Stmt)
190190
| NullStmt() [symbol]
191-
| ForTStmt(Stmt, Expr, Stmt, Stmt) [symbol]
192-
| ForTStmt(Stmt, Decl, Stmt, Stmt) [symbol]
193-
| ForTStmt(Expr, Stmt, Stmt) [symbol]
191+
| ForTStmt(Stmt, Expr, Stmt, Stmt)
192+
| ForTStmt(Stmt, Decl, Stmt, Stmt)
193+
| ForTStmt(Expr, Stmt, Stmt)
194194
| TemplateDefinitionStmt(K) [symbol] // synthetic statement created by the body of a function template definition when it's evaluted before instantiation
195195

196196
syntax AStmt ::= NoStatement() [symbol]
197197
| CompoundAStmt(List) [symbol]
198198
| LabelAStmt(CId, List) [symbol]
199199
| ForAStmt(AStmt, AExpr, AExpr, AStmt) [symbol]
200-
| ForAStmt(AStmt, Decl, AExpr, AStmt) [symbol]
201-
| WhileAStmt(Decl, AStmt) [symbol]
200+
| ForAStmt(AStmt, Decl, AExpr, AStmt)
201+
| WhileAStmt(Decl, AStmt)
202202
| WhileAStmt(Expr, AStmt) [symbol]
203203
| DoWhileAStmt(AStmt, Expr) [symbol]
204204
| IfAStmt(Decl, AStmt, AStmt) [symbol]
205-
| IfAStmt(Expr, AStmt, AStmt) [symbol]
205+
| IfAStmt(Expr, AStmt, AStmt)
206206
| SwitchAStmt(Decl, AStmt) [symbol]
207-
| SwitchAStmt(Expr, AStmt) [symbol]
207+
| SwitchAStmt(Expr, AStmt)
208208
| CaseAStmt(Expr, AStmt) [symbol]
209209
| DefaultAStmt(AStmt) [symbol]
210210
| TryAStmt(AStmt, List) [symbol]

semantics/cpp/language/translation/typing/canonicalization.k

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ module CPP-TRANSLATION-TYPING-CANONICALIZATION
6161

6262
rule MemberPointerType(t(... st: classType(...)) #as D::CPPType, T:CPPType) => t(noQuals, .Set, memberPointerType(D, T))
6363

64-
rule ArrayType(T:CPPType, NoExpression()) => t(noQuals, .Set, incompleteArrayType(T))
64+
rule ArrayTypeAExpr(T:CPPType, NoExpression()) => t(noQuals, .Set, incompleteArrayType(T))
6565

6666
rule ArrayType(T:CPPType, I:Int) => t(noQuals, .Set, arrayType(T, I))
6767

0 commit comments

Comments
 (0)