
* problem with initializers that refer to variables,
  that are also referred to from within a Block :

  	id x = ...;
	id y = [x copy];
	[ ... do: { block that references "x"}]

  work-around: initialize variable in a separate statement, like in:
         
	id y,x = ...;
	y = [x copy]; /* separate statement */
	[ ... do: { block that references "x"}]
  
  Similar problem was happening when referring to ivars or cvars from
  both initializers and from within a Block.

  (FIXED 1.8.13)

  1.9.12 : this bug either reappeared or wasn't fixed right ( happened again )
  (work-around can still be used)

* There's probably a bug in the instance variable translation.
  I think I've seen isa==a->isa translate into self->isa==a->self->isa
  (I just replaced this by isa==[a class])
  
  (FIXED 1.6.7)
 
* header files like String.h are not including object.h (you're supposed
  to include objpak.h for the moment).

  (FIXED 1.8.1)
	
* WATCOM compiler is issuing error messages against .P file instead .m

  (FIXED os/2 port)

* no error msg when ivars in @interface and @implementation don't
  match...

  (FIXED)

* objcplus parses STL headers and (according to Val Gough) Qt C++ headers,
  except for :
  
  inline QString &QString::operator=( const QString &s )
  inline QString &QString::operator=( const char *str )
  inline QString::operator const char *() const

  work-around is to insert a space between the scope (::) and operator.

  SORT-OF-FIXED in 1.8.7 (hack in place specifically for the ::operator)

* arguments of functions cannot be referred to from within block.

  (arguments of _methods_ already work, and arguments of _blocks_ can also
   be referred to from within subblocks)

  FIXED 1.8.5 (subblocks :arguments of enclosing block)
 
  workaround (if using method or surrounding block not acceptable):
  use temp variable:

  	foo(int x)
	{ 
	    int temp = x; [ c do: { :e | temp++ }];
	}
  
  FIXED 1.8.10 for ANSI C args and K&R style function args

* maybe (?) bug with blocks if block redefines local
  not sure whether this is a bug.

  	int tmp; [ c do: { :e | int tmp; ... }];

  workaround: rename variable

* redundant generation of blockVar (gives warning with -Wall) in case
  of nested compounds with block in it

      int c = 0;  if () { if () { [clnt do : { :e | c++; } } 

  workaround (for warning only): unnest
  
  this is FIXED 1.8.5

* arrays aren't accessible from wihtin blocks.

	 int x[2];
	 [c do: { x[1] = }];

  workaround: pointers (sort of) work, use tempvar.

	 int x[2];
	 int *y = x;
	 [c do: { y[1] = }];

