Change bug status of 1996/august
On another reading of one of the files it occurred to me that he hanging I observed with clang (after fixing it for gcc) was actually documented by the judges in the first place. They noted that some compilers compile the code into an infinite loop and that is indeed what clang does. Thus because it's documented it's a feature not a bug.
This commit is contained in:
1 parent
d2beb64941
commit
2e1494c695
2 files changed
+10
-36
No files matched your search
@@ -912,33 +912,12 @@ We would appreciate anyone who has it or even just knows the name! Thank you.
|
||||
# 1996
|
||||
|
||||
## [1996/august](1996/august/august.c) ([README.md](1996/august/README.md))
|
||||
## STATUS: doesn't work with some compilers - please provide alternative code
|
||||
## STATUS: INABIAF - please **DO NOT** fix
|
||||
|
||||
[Cody Boone Ferguson](/winners.html#Cody_Boone_Ferguson) fixed a segfault in
|
||||
this program that prevented it from working but he observes that this hangs
|
||||
in macOS with this invocation in particular:
|
||||
|
||||
```sh
|
||||
cat august.c august.oc | ./august > august.oo
|
||||
```
|
||||
|
||||
This happens to do with the fact that macOS is `clang` even the binary `gcc`.
|
||||
Trying clang in linux and the same problem occurs. As well if specifying (even
|
||||
with gcc) certain flags this also happens namely `-ggdb3`. The bug fix involved
|
||||
increasing the value of `Z` as it was accessing way out of range of the array,
|
||||
thus causing a segfault.
|
||||
|
||||
The compilation should look like:
|
||||
|
||||
```sh
|
||||
cc -std=gnu90 -Wall -Wextra -pedantic -Wno-error -Wno-implicit-function-declaration -Wno-invalid-source-encoding -Wno-invalid-utf8 -DZ=240000 -D'T=m[s]' -D'P=m[s++]' -D'L=m[p++]' -D'g=getchar()' -DE=else -DW=while -D'B=m[p++]' -DI=if -DR='s=s+l/2;T=r;I(l%2)s++' -D'X=m[s-' -D'D=Q(13,-)Q(14,*)Q(15,/)Q(16,%)Q(6,==)Q(7,!=)Q(8,<)C(1,r=P;m[T]=r;T=r)C(9,r=P;m[T]=r;s++)' -O3 august.c -o august
|
||||
```
|
||||
|
||||
but again this will not work with clang. As the judges noted that some compilers
|
||||
compile it into an infinite loop I'm (Cody) inclined to believe that this is the
|
||||
source of the problem.
|
||||
|
||||
Nevertheless if you have a fix for clang we welcome it!
|
||||
this program that prevented it from working in gcc. It is known, however, that
|
||||
some compilers (like clang) will compile the code so that it enters an infinite
|
||||
loop. See the README.md file for an example command that this can happen with.
|
||||
|
||||
|
||||
## [1996/gandalf](1996/gandalf/gandalf.c) ([README.md](1996/gandalf/README.md))
|
||||
|
||||
Reference in new issue
Block a user