[Bug driver/36312] should refuse to overwrite input file with output file
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=36312 --- Comment #10 from Wojciech Koszek --- I'm very happy seeing it in GCC. On Wed, Nov 5, 2014 at 9:24 AM, manu at gcc dot gnu.org < gcc-bugzi...@gcc.gnu.org> wrote: > https://gcc.gnu.org/bugzilla/show_bug.cgi?id=36312 > > --- Comment #8 from Manuel López-Ibáñez --- > Author: manu > Date: Wed Nov 5 17:23:46 2014 > New Revision: 217149 > > URL: https://gcc.gnu.org/viewcvs?rev=217149&root=gcc&view=rev > Log: > > gcc/testsuite/ChangeLog: > > 2014-11-05 Anthony Brandon > > PR driver/36312 > * gcc.misc-tests/output.exp: New test case for identical input and > output files. > > include/ChangeLog: > > 2014-11-05 Anthony Brandon > > PR driver/36312 > * filenames.h: Add prototype for canonical_filename_eq. > > gcc/ChangeLog: > > 2014-11-05 Anthony Brandon > > PR driver/36312 > * diagnostic-core.h: Add prototype for fatal_error. > * diagnostic.c (fatal_error): New function fatal_error. > * gcc.c (store_arg): Remove have_o_argbuf_index. > (process_command): Check if input and output files are the same. > * toplev.c (init_asm_output): Check if input and output files are > the same. > > libiberty/ChangeLog: > > 2014-11-05 Anthony Brandon > > PR driver/36312 > * filename_cmp.c (canonical_filename_eq): New function to check if > file names are the same. > * functions.texi: Updated with documentation for new function. > > Added: > trunk/gcc/testsuite/gcc.misc-tests/output.exp > Modified: > trunk/gcc/ChangeLog > trunk/gcc/diagnostic-core.h > trunk/gcc/diagnostic.c > trunk/gcc/gcc.c > trunk/gcc/testsuite/ChangeLog > trunk/gcc/toplev.c > trunk/include/ChangeLog > trunk/include/filenames.h > trunk/libiberty/ChangeLog > trunk/libiberty/filename_cmp.c > trunk/libiberty/functions.texi > > -- > You are receiving this mail because: > You are on the CC list for the bug. >
[Bug c/63462] New: [RFC] gcc should prevent from overwriting source file
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63462 Bug ID: 63462 Summary: [RFC] gcc should prevent from overwriting source file Product: gcc Version: unknown Status: UNCONFIRMED Severity: normal Priority: P3 Component: c Assignee: unassigned at gcc dot gnu.org Reporter: wkoszek at gmail dot com Suggestion: prevent GCC from overwriting source code files when invoked as: gcc source.c -o source.c Background: I use command completion heavily. Very often while in coding mood I do: gcc myfile.c -o myf not to type "myfile", which is long. But after completion kicks in, I sometimes forget to do . And .c file gets overwritten. It'd be nice to have GCC catch this. And if you really want to do it, maybe run GCC with: --yes-im-sure-i-want-to-overwrite-my-source-code switch.
[Bug c/49859] New: gcc could warn about statements between "switch" and first "case"
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49859 Summary: gcc could warn about statements between "switch" and first "case" Product: gcc Version: 4.5.2 Status: UNCONFIRMED Severity: minor Priority: P3 Component: c AssignedTo: unassig...@gcc.gnu.org ReportedBy: wkos...@gmail.com Created attachment 24838 --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=24838 Sample source code. wkoszek@wkoszek:~/p/switch$ cat switch.c #include int main(int argc, char **argv) { inttype; type = 123; switch (type) { printf("SOMETHING\n"); case 1: printf("1\n"); break; case 2: printf("2\n"); break; default: printf("default\n"); return 1; } return 0; } wkoszek@wkoszek:~/p/switch$ gcc -pedantic -Wall -Wunused -Wunreachable-code -c switch.c wkoszek@wkoszek:~/p/switch$ clang -pedantic -Wall -Wunused -Wunreachable-code -c switch.c switch.c:10:3: warning: will never be executed [-Wunreachable-code] printf("SOMETHING\n"); ^ 1 warning generated. wkoszek@wkoszek:~/p/switch$ gcc -v Using built-in specs. COLLECT_GCC=gcc COLLECT_LTO_WRAPPER=/usr/lib/i386-linux-gnu/gcc/i686-linux-gnu/4.5.2/lto-wrapper Target: i686-linux-gnu Configured with: ../src/configure -v --with-pkgversion='Ubuntu/Linaro 4.5.2-8ubuntu4' --with-bugurl=file:///usr/share/doc/gcc-4.5/README.Bugs --enable-languages=c,c++,fortran,objc,obj-c++ --prefix=/usr --program-suffix=-4.5 --enable-shared --enable-multiarch --with-multiarch-defaults=i386-linux-gnu --enable-linker-build-id --with-system-zlib --libexecdir=/usr/lib/i386-linux-gnu --without-included-gettext --enable-threads=posix --with-gxx-include-dir=/usr/include/c++/4.5 --libdir=/usr/lib/i386-linux-gnu --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --enable-plugin --enable-gold --enable-ld=default --with-plugin-ld=ld.gold --enable-objc-gc --enable-targets=all --disable-werror --with-arch-32=i686 --with-tune=generic --enable-checking=release --build=i686-linux-gnu --host=i686-linux-gnu --target=i686-linux-gnu Thread model: posix gcc version 4.5.2 (Ubuntu/Linaro 4.5.2-8ubuntu4)
[Bug c/49859] gcc could warn about statements between "switch" and first "case"
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49859 --- Comment #1 from Wojciech Koszek 2011-07-27 01:16:25 UTC --- I'd expect GCC to warn me about this case, since it's very likely an error.
[Bug c/49859] gcc could warn about statements between "switch" and first "case"
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49859 --- Comment #3 from Wojciech Koszek 2011-07-27 01:28:28 UTC --- Looks like GCC and Clang both agree on Duff's stuff: wkoszek@wkoszek:~/p/duff$ cat duff.c #include void duff(to, from, count) register short *to, *from; register int count; { register int n=(count+7)/8; switch(count%8){ case 0: do{ *to = *from++; case 7: *to = *from++; case 6: *to = *from++; case 5: *to = *from++; case 4: *to = *from++; case 3: *to = *from++; case 2: *to = *from++; case 1: *to = *from++; }while(--n>0); } } int main(int argc, char **argv) { short*dummy = NULL; (void)argc; (void)argv; duff(dummy, dummy, 123); return 0; } wkoszek@wkoszek:~/p/duff$ gcc -Wall -pedantic -Wunreachable-code -c duff.c wkoszek@wkoszek:~/p/duff$ clang -Wall -pedantic -Wunreachable-code -c duff.c