Fix parsing of function declarations that return pointers.
Check that <op>= only evaluates the left-hand-side once.
diff --git a/libacc/acc.cpp b/libacc/acc.cpp
index f70c7a1..676947e 100644
--- a/libacc/acc.cpp
+++ b/libacc/acc.cpp
@@ -4409,15 +4409,11 @@
Type* acceptDecl2(Type* pType, tokenid_t& declName,
bool nameAllowed, bool nameRequired,
bool& reportFailure) {
- int ptrCounter = 0;
while (accept('*')) {
- ptrCounter++;
+ pType = createType(TY_POINTER, pType, NULL);
}
pType = acceptDecl3(pType, declName, nameAllowed, nameRequired,
reportFailure);
- while (ptrCounter-- > 0) {
- pType = createType(TY_POINTER, pType, NULL);
- }
return pType;
}