Re: Doubts regarding the issue (bug 62181)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Fri, 4 Feb 2022 at 11:36, Krishna Narayanan via Gcc-help
<gcc-help@xxxxxxxxxxx> wrote:
>
> Respected sir,
> I went through the compiler flags and mistake was on my side using the 'w'
> suppressor flag to remove the warnings without knowing it.Thanks for the
> docs and reply.
>
> By unicode I meant there is a question mark inside a diagonal.(unicode
> error symbol)

That means it's printing garbage characters that can't be processed as
valid UTF-8, so explicitly NOT unicode. Calling that unicode is very
confusing.


> Sir this is perspective with the third print that is
> "cc"+foobar() where I get zR for gcc (9.3.0) and unicode for g++-10.1.
> I got your point regarding the garbage value and to throw a warning is
> better than to get such an unwanted output.
>
> I thought there would be a specific reason why it had come because in const
> char *a ="aa"+'operator/number' i.e when I add some character with some
> change it gives blank space for numbers and operators, where as for
> addition of 'a' in *a= "aa"+'a' it give 4 times the unicode symbol but for
> *c="cc" +'c' and *b="bb"+'b' gives a space as output.Yes it has been quite
> unpredictable and undefined behaviour.

The nature of undefined behaviour is to be unpredictable.

Compile with -fsanitize=address to get a lot more detail about what
your buggy code is doing. You'll see an explanation of where the
pointer arithmetic goes, and what's in memory there.



>
> So has the request of warning been granted in the upcoming gcc version!?

Do you get any warning when compiling your buggy example with gcc? I don't.

However, when I compile it with clang I get:

oflow.c:10:23: warning: adding 'char' to a string does not append to
the string [-Wstring-plus-int]
const char *b = "bb" + bar();
                ~~~~~^~~~~~~
oflow.c:10:23: note: use array indexing to silence this warning
const char *b = "bb" + bar();
                     ^
                &    [      ]
oflow.c:11:22: warning: adding 'int' to a string does not append to
the string [-Wstring-plus-int]
const char *c = "cc" + foobar();
               ~~~~~^~~~~~~~~~
oflow.c:11:22: note: use array indexing to silence this warning
const char *c = "cc" + foobar();
                    ^
               &    [         ]
2 warnings generated.



[Index of Archives]     [Linux C Programming]     [Linux Kernel]     [eCos]     [Fedora Development]     [Fedora Announce]     [Autoconf]     [The DWARVES Debugging Tools]     [Yosemite Campsites]     [Yosemite News]     [Linux GCC]

  Powered by Linux