Path: utzoo!utgpu!news-server.csri.toronto.edu!bonnie.concordia.ca!uunet!samsung!usc!snorkelwacker.mit.edu!bloom-beacon!eru!hagbard!sunic!fuug!funic!santra!santra!sja From: sja@sirius.hut.fi (Sakari Jalovaara) Newsgroups: comp.lang.c Subject: Re: How to parse this? Message-ID: <1991Jan22.121401.5266@santra.uucp> Date: 22 Jan 91 13:14:34 GMT References: <1991Jan19.171622.22801@santra.uucp> <14904@smoke.brl.mil> Sender: news@santra.uucp (Cnews - USENET news system) Organization: Helsinki University of Technology Lines: 30 In-Reply-To: gwyn@smoke.brl.mil's message of 20 Jan 91 08:31:18 GMT > I wish I understood your example.. I meant this: /tmp (vipunen) 28> cat t1.c typedef char typename; int f (int (typename [])); int f (int func (char arr[])); /tmp (vipunen) 29> cc -c t1.c 4 | int f (int func (char arr[])); ....a......................... a - 1506-132: (S) Illegal redeclaration of function, f. /tmp (vipunen) 30> cat t2.c typedef char typename; int f (int (typename [])); int f (int arr[]); /tmp (vipunen) 31> cc -c t2.c /tmp (vipunen) 32> i.e. is "int (typename [])" an abstract declarator or redundant parenthesis around a declarator. > What the standard means is that "if an identifier in such contexts > CAN be taken as a typedef name, then it SHOULD be taken as a typedef name". Yep, that clears it; the compiler I use above seems to have it wrong. ++sja