From dadcaf92c448e703c26e0652a93f75d56cc16f12 Mon Sep 17 00:00:00 2001 From: Cody Boone Ferguson <53008573+xexyl@users.noreply.github.com> Date: Sat, 25 Nov 2023 04:23:47 -0800 Subject: [PATCH] Add second arg to main() in 1985/august Due to clang defect in number of args allowed in main(). Some versions will if you use, say, 4 args, object and report that main() can only have 0, 2 or 3 args. That same version does not appear to object to 1 arg (bug?) but it's entirely possible that this changes so I have changed the number of args of main() to 2 even though it's unused just out of abundance of caution. Updated CSILENCE for no implicit int. I have to test the unused parameter warning. That might need to be added to, -Wno-unused-parameter, but I have to find out which compilers will or will not object to it and that can come later on. --- 1985/august/Makefile | 3 ++- 1985/august/august.c | 4 ++-- thanks-for-fixes.md | 15 +++++++++++---- 3 files changed, 15 insertions(+), 7 deletions(-) diff --git a/1985/august/Makefile b/1985/august/Makefile index 41c0751cc..d29d47577 100644 --- a/1985/august/Makefile +++ b/1985/august/Makefile @@ -39,7 +39,8 @@ include ../../var.mk # Common C compiler warnings to silence # CSILENCE= -Wno-error -Wno-implicit-function-declaration -Wno-main \ - -Wno-unused-parameter -Wno-unused-variable -Wno-deprecated-non-prototype + -Wno-unused-parameter -Wno-unused-variable -Wno-deprecated-non-prototype \ + -Wno-implicit-int # Common C compiler warning flags # diff --git a/1985/august/august.c b/1985/august/august.c index e2c7c6316..9c2c782b9 100644 --- a/1985/august/august.c +++ b/1985/august/august.c @@ -10,5 +10,5 @@ q{int a;p{q*(*a)();int b;p*c;}*b;};q*u n a=z(q);h=d;i=z(p);i->a=u;i->b=d+1;s v n c=b;do o,b=i;while(!(h%d));i=c;i->a=v;i->b=d;e=b;s w n o;c=i;i=b;i->a=w;e=z(p);e->a=v;e->b=h;e->c=c;s -t n for(;;)o,main(-h),b=i;}main(b){p*a;if(b>0)a=z(p),h=w,a->c=z(p),a->c->a=u, -a->c->b=2,t(0,a);putchar(b?main(b/2),-b%2+'0':10);} +t n for(;;)o,main(-h,0),b=i;}main(b,f)char**f;{p*a;if(b>0)a=z(p),h=w,a->c=z(p),a->c->a=u, +a->c->b=2,t(0,a);putchar(b?main(b/2,0),-b%2+'0':10);} diff --git a/thanks-for-fixes.md b/thanks-for-fixes.md index 9c04acf39..a8cb099d8 100644 --- a/thanks-for-fixes.md +++ b/thanks-for-fixes.md @@ -178,10 +178,17 @@ returning to the shell. The original version does not have this change. ## [1985/august](1985/august/august.c) ([README.md](1985/august/README.md)) -Cody added the script [primes.sh](1985/august/primes.sh) which allows one to -check the output for the first N prime numbers of the output, where N is either -the default or user specified. The inspiration was the previous 'try' command he -gave to have fun with finding primes that might seem unusual in a way. +Cody, out of abundance of caution, added a second arg to `main()` because some +versions of clang object to the number of args of `main()`, saying that it must +be 0, 2 or 3. The version this has been observed in does not actually object to +1 arg but it is entirely possible that this changes so a second arg (that's not +needed and is unused) has been added just in case. + +Cody also added the script [primes.sh](1985/august/primes.sh) which allows one +to check the output for the first N prime numbers of the output, where N is +either the default or user specified. The inspiration was the previous 'try' +command he gave to have fun with finding primes that might seem unusual in a +way. ## [1985/lycklama](1985/lycklama/lycklama.c) ([README.md](1985/lycklama/README.md]))