On Wed, May 25, 2011 at 02:18:33PM -0400, Jesse M Draper wrote:
> CIL issues an "Error: Unexpected operand for addrof" message when it encounters &"stringliteral"
> even though GCC will compile this expression even with -ansi and/or -pedantic flags. Although the
> construct is a little odd, I think that it is ANSI compliant.
ISO/IEC 9899, section 220.127.116.11, §1:
"The operand of the unary & operator shall be either a function
designator, the result of a  or unary * operator, or an lvalue that
designates an object that is not a bit-field and is not declared with
the register storage-class specifier."
and section 6.5.1, §4:
"A string literal is a primary expression. It is an lvalue with type as
detailed in 6.4.5."
So this is a bug indeed.
I see how to fix this (create a new temporary variable to hold the
string and return the address of this variable) but I have no idea when
I'll have time to fix this. Probably not before two months, sadly.
If you feel like trying to do it, I'd be glad to help you with any
question you might have.