On Fri, Dec 27, 2019 at 4:22 PM 瞿兴 <jux...@stumail.nwu.edu.cn> wrote: > > Hi, > > In section 6.7.8 of the C99 draft document defines : > > If an attempt is made to use pointer variable p to modify the contents of the > array, the behavior is undefined. > > When executing the testcase(in the attachment), tinyc does not report an > error and modify the value of the variable NISLParameter0 successfully while > other compilers such as gcc and clang report a runtime error: “Segmentation > fault”. I think it would be better for tinyc to throw an error or at least a > warning for the wrong action. > > > > The OS is: > > Linux version 4.15.0-65-generic > > > > Compiler Version: > > tcc version 0.9.27 (x86_64 Linux) > > > > Output: > > 111 > > abcde1ghij > > > > Expected output: > > Throw an error or at least a warning. > > > > The attachment includes the relevant testcase. Looking forward to your reply.
Undefined Behavior mean the Behavior is undefined, so not having an error is as okay as a segmentation fault Also, even on gcc on linux, if you use mprotec you can modify a string literal without error. _______________________________________________ Tinycc-devel mailing list Tinycc-devel@nongnu.org https://lists.nongnu.org/mailman/listinfo/tinycc-devel