spir <denis.s...@gmail.com> wrote:

Hello,

I have a little issue with pointer syntax:

    auto toS = &("abc") ; // ok
    auto toS = &"abc" ;           // ok

    auto toI = &(1) ;               // Error: constant 1 is not an lvalue
    auto toI = &1 ;         // Error: constant 1 is not an lvalue

The only solution I found is:

    auto i = 1 ;
    auto toI = &i ;

It seems to be a pure syntactic problem. But why does it work with strings? "abc" is no more a lvalue, I guess.

It appears that array structs are automatically created in the data
segment of the executable, and one may thus get a pointer to them.
It does make sense to do it this way, but exposing it to let people
access it in this way, not so much. I'd say the string example is a
bug.


--
Simen

Reply via email to