[comp.sys.apollo] void function pointer.....

andrewn@syma.sussex.ac.uk (Andrew D Nimmo) (10/26/89)

	When compiling the following code segment using CC V6.5_p and
	CC V6.6_m the the listed error appeared.  When compiling on a
	Sequent Symmetry no such errors occur.  I don't have the C
	reference manual to refer to, so would like to know the reason
	for the errors.

	Thanks,

	Andrew D. Nimmo

----

	static void traverse (tree, fn, pre)
	/* traverses the tree, calling fn on each and every node */
	fpexpr tree;
	void ((* fn)());
	int pre;
	{
	  fpexpr save = tree;
	
	  if (pre)
	    (* fn) (tree);
	  switch (tree->exprtype)
	  {
	    case COND:
250	      traverse (tree->fpexprv.conditional [0], (* fn), pre);
	      traverse (tree->fpexprv.conditional [1], (* fn), pre);
	      traverse (tree->fpexprv.conditional [2], (* fn), pre);
	      break;
	    case BU:
	    case BUR:
	      traverse (tree->fpexprv.bulr.bufun, (* fn), pre);
	      traverse (tree->fpexprv.bulr.buobj, (* fn), pre);
	      break;
	    case WHILE:
	      traverse (tree->fpexprv.whilestat [0], (* fn), pre);
	      traverse (tree->fpexprv.whilestat [1], (* fn), pre);
	      break;
	    case COMP:


	 (0250)       traverse (tree->fpexprv.conditional [0], (* fn), pre);

	******** Line 250 of "code.c": [Error #207]  Illegal type "void" for argument 2.
	
	 (0251)       traverse (tree->fpexprv.conditional [1], (* fn), pre);
	
	******** Line 251 of "code.c": [Error #207]  Illegal type "void" for argument 2.
	
	 (0252)       traverse (tree->fpexprv.conditional [2], (* fn), pre);
	
	******** Line 252 of "code.c": [Error #207]  Illegal type "void" for argument 2.
	
	 (0256)       traverse (tree->fpexprv.bulr.bufun, (* fn), pre);
	
	******** Line 256 of "code.c": [Error #207]  Illegal type "void" for argument 2.
	
	 (0257)       traverse (tree->fpexprv.bulr.buobj, (* fn), pre);
	
	******** Line 257 of "code.c": [Error #207]  Illegal type "void" for argument 2.
	
	 (0260)       traverse (tree->fpexprv.whilestat [0], (* fn), pre);
	
	******** Line 260 of "code.c": [Error #207]  Illegal type "void" for argument 2.
	
	 (0261)       traverse (tree->fpexprv.whilestat [1], (* fn), pre);
	
	******** Line 261 of "code.c": [Error #207]  Illegal type "void" for argument 2.
	
	 (0267)         traverse (tree->fpexprv.compconstr.compexpr, (* fn), pre);
	
	******** Line 267 of "code.c": [Error #207]  Illegal type "void" for argument 2.
	
	 (0276)       traverse (tree->fpexprv.aains, (* fn), pre);
	
	******** Line 276 of "code.c": [Error #207]  Illegal type "void" for argument 2.
	
	 (0281)         traverse (tree->fpexprv.listobj.listel, (* fn), pre);
	
-- 
	Andrew D. Nimmo, VLSI and Graphics Research Group,
	EAPS II, University of Sussex, Falmer, BRIGHTON, East Sussex, BN1 9Qt
	TEL: +44 273 606755 x 2617
	EMAIL: (JANET) andrewn@syma.sussex.ac.uk | (UUCP) ...mcsun!ukc!syma!andrewn