Hi Jason, You've recently touched code about C++ modules. Do you have any idea of why my changes may be introducing regressions in the tests?
Have a lovely night! Alex On Sun, Oct 13, 2024 at 11:56:55PM GMT, Alejandro Colomar wrote: > Hi Joseph, > > On Fri, Oct 11, 2024 at 01:44:36PM GMT, Alejandro Colomar wrote: > > Hi, > > > > This is just an untested draft. If there's rough agreement that this is > > wanted, I'll test it, write changelog, etc. > > > > The intention of this change is to help improve the common C/C++ > > language subset, promoting the use of NULL in both languages as the null > > pointer constant, expanding to nullptr in C++, and to ((void *)0) in C. > > > > While C23 added nullptr, it was a terrible mistake, and it doesn't do > > any good to the C language. (See the link below for more details.) > > Instead, it's C++ which should reconcile with C. Let's work in that > > direction. > > > > Link: <https://software.codidact.com/posts/292718> > > > > Have a lovely day! > > Alex > > > > Alejandro Colomar (5): > > gcc/ginclude/stddef.h: Indent nested cpp conditionals > > gcc/ginclude/stddef.h: Invert conditional > > gcc/ginclude/stddef.h: Define NULL as nullptr if possible > > Don't define NULL as 0 in C > > libgm2/libm2pim/wrapc.cc: Define NULL as nullptr > > > > gcc/ginclude/stddef.h | 24 +++++++++++-------- > > .../gcc.c-torture/execute/pr68143_1.c | 2 +- > > gcc/testsuite/gcc.c-torture/execute/pr70566.c | 2 +- > > gcc/testsuite/gcc.dg/tm/20100615.c | 2 +- > > gcc/testsuite/gcc.target/aarch64/pr91927.c | 2 +- > > libgm2/libm2pim/wrapc.cc | 4 +--- > > libiberty/alloca.c | 2 +- > > libiberty/argv.c | 2 +- > > libiberty/getopt1.c | 2 +- > > 9 files changed, 22 insertions(+), 20 deletions(-) > > There are some regressions. Below is the diff of .sum files. In the > .log files, I see some errors saying `CRC mismatch`. Did I do anything > wrong? > > Have a lovely night! > Alex > > > --- ../.tmp.null.b4/./gcc/testsuite/g++/g++.sum 2024-10-13 > 17:49:00.772692813 +0200 > +++ ../.tmp.null/./gcc/testsuite/g++/g++.sum 2024-10-13 20:45:15.537873070 > +0200 > @@ -1,4 +1,4 @@ > -Test run by alx on Sun Oct 13 12:28:13 2024 > +Test run by alx on Sun Oct 13 19:41:09 2024 > Native configuration is x86_64-pc-linux-gnu > > === g++ tests === > @@ -192400,8 +192400,7 @@ > PASS: g++.dg/modules/p1689-1.C -std=c++2b (test for excess errors) > FAIL: g++.dg/modules/p1689-2.C -std=c++17 (test for excess errors) > FAIL: g++.dg/modules/p1689-2.C -std=c++2a (test for excess errors) > -PASS: g++.dg/modules/p1689-2.C -std=c++2b (test for excess errors) > -FAIL: ERROR: length mismatch at rules/0/requires: actual: "1" expect: "0" > +FAIL: g++.dg/modules/p1689-2.C -std=c++2b (test for excess errors) > PASS: g++.dg/modules/p1689-3.C -std=c++17 (test for excess errors) > PASS: g++.dg/modules/p1689-3.C -std=c++2a (test for excess errors) > PASS: g++.dg/modules/p1689-3.C -std=c++2b (test for excess errors) > @@ -193382,12 +193381,12 @@ > PASS: g++.dg/modules/binding-1_b.H module-cmi > (gcm.cache/$srcdir/g++.dg/modules/binding-1_b.H.gcm) > FAIL: g++.dg/modules/binding-1_c.C -std=c++2a (test for excess errors) > FAIL: g++.dg/modules/binding-1_c.C module-cmi hello (gcm.cache/hello.gcm) > -PASS: g++.dg/modules/binding-1_a.H -std=c++2b (test for excess errors) > -PASS: g++.dg/modules/binding-1_a.H module-cmi > (gcm.cache/$srcdir/g++.dg/modules/binding-1_a.H.gcm) > +FAIL: g++.dg/modules/binding-1_a.H -std=c++2b (test for excess errors) > +FAIL: g++.dg/modules/binding-1_a.H module-cmi > (gcm.cache/$srcdir/g++.dg/modules/binding-1_a.H.gcm) > PASS: g++.dg/modules/binding-1_b.H -std=c++2b (test for excess errors) > PASS: g++.dg/modules/binding-1_b.H module-cmi > (gcm.cache/$srcdir/g++.dg/modules/binding-1_b.H.gcm) > -PASS: g++.dg/modules/binding-1_c.C -std=c++2b (test for excess errors) > -PASS: g++.dg/modules/binding-1_c.C module-cmi hello (gcm.cache/hello.gcm) > +FAIL: g++.dg/modules/binding-1_c.C -std=c++2b (test for excess errors) > +FAIL: g++.dg/modules/binding-1_c.C module-cmi hello (gcm.cache/hello.gcm) > PASS: g++.dg/modules/block-decl-1_a.C -std=c++17 (test for bogus messages, > line 7) > PASS: g++.dg/modules/block-decl-1_a.C -std=c++17 (test for excess errors) > PASS: g++.dg/modules/block-decl-1_a.C module-cmi bla (gcm.cache/bla.gcm) > @@ -194824,13 +194823,13 @@ > FAIL: g++.dg/modules/global-3_b.C -std=c++2a (test for excess errors) > UNRESOLVED: g++.dg/modules/global-3 -std=c++2a link > UNRESOLVED: g++.dg/modules/global-3 -std=c++2a execute > -PASS: g++.dg/modules/global-3_a.C -std=c++2b (test for excess errors) > -PASS: g++.dg/modules/global-3_a.C -std=c++2b scan-lang-dump module > "Dependencies of decl function_decl:'::Log'" > +FAIL: g++.dg/modules/global-3_a.C -std=c++2b (test for excess errors) > +FAIL: g++.dg/modules/global-3_a.C -std=c++2b scan-lang-dump module > "Dependencies of decl function_decl:'::Log'" > PASS: g++.dg/modules/global-3_a.C -std=c++2b scan-lang-dump-not module > "Reachable GMF '::printf[^'\\n]*' added" > -PASS: g++.dg/modules/global-3_a.C module-cmi logger (gcm.cache/logger.gcm) > -PASS: g++.dg/modules/global-3_b.C -std=c++2b (test for excess errors) > -PASS: g++.dg/modules/global-3 -std=c++2b link > -PASS: g++.dg/modules/global-3 -std=c++2b execute > +FAIL: g++.dg/modules/global-3_a.C module-cmi logger (gcm.cache/logger.gcm) > +FAIL: g++.dg/modules/global-3_b.C -std=c++2b (test for excess errors) > +UNRESOLVED: g++.dg/modules/global-3 -std=c++2b link > +UNRESOLVED: g++.dg/modules/global-3 -std=c++2b execute > PASS: g++.dg/modules/gmf-1_a.C -std=c++17 (test for excess errors) > PASS: g++.dg/modules/gmf-1_a.C module-cmi hello (gcm.cache/hello.gcm) > PASS: g++.dg/modules/gmf-1_b.C -std=c++17 (test for excess errors) > @@ -194946,11 +194945,11 @@ > FAIL: g++.dg/modules/hello-1_b.C -std=c++2a (test for excess errors) > UNRESOLVED: g++.dg/modules/hello-1 -std=c++2a link > UNRESOLVED: g++.dg/modules/hello-1 -std=c++2a execute > -PASS: g++.dg/modules/hello-1_a.C -std=c++2b (test for excess errors) > -PASS: g++.dg/modules/hello-1_a.C module-cmi hello (gcm.cache/hello.gcm) > -PASS: g++.dg/modules/hello-1_b.C -std=c++2b (test for excess errors) > -PASS: g++.dg/modules/hello-1 -std=c++2b link > -PASS: g++.dg/modules/hello-1 -std=c++2b execute > +FAIL: g++.dg/modules/hello-1_a.C -std=c++2b (test for excess errors) > +FAIL: g++.dg/modules/hello-1_a.C module-cmi hello (gcm.cache/hello.gcm) > +FAIL: g++.dg/modules/hello-1_b.C -std=c++2b (test for excess errors) > +UNRESOLVED: g++.dg/modules/hello-1 -std=c++2b link > +UNRESOLVED: g++.dg/modules/hello-1 -std=c++2b execute > PASS: g++.dg/modules/hello-2_a.C -std=c++17 (test for excess errors) > PASS: g++.dg/modules/hello-2_a.C module-cmi Hello2 (gcm.cache/Hello2.gcm) > FAIL: g++.dg/modules/hello-2_b.C -std=c++17 (test for excess errors) > @@ -194963,9 +194962,9 @@ > UNRESOLVED: g++.dg/modules/hello-2 -std=c++2a execute > PASS: g++.dg/modules/hello-2_a.C -std=c++2b (test for excess errors) > PASS: g++.dg/modules/hello-2_a.C module-cmi Hello2 (gcm.cache/Hello2.gcm) > -PASS: g++.dg/modules/hello-2_b.C -std=c++2b (test for excess errors) > -PASS: g++.dg/modules/hello-2 -std=c++2b link > -PASS: g++.dg/modules/hello-2 -std=c++2b execute > +FAIL: g++.dg/modules/hello-2_b.C -std=c++2b (test for excess errors) > +UNRESOLVED: g++.dg/modules/hello-2 -std=c++2b link > +UNRESOLVED: g++.dg/modules/hello-2 -std=c++2b execute > PASS: g++.dg/modules/horcrux-1_a.C -std=c++17 (test for excess errors) > PASS: g++.dg/modules/horcrux-1_a.C module-cmi foo (gcm.cache/foo.gcm) > PASS: g++.dg/modules/horcrux-1_b.C -std=c++17 (test for excess errors) > @@ -195873,11 +195872,11 @@ > FAIL: g++.dg/modules/iostream-1_b.C -std=c++2a (test for excess errors) > UNRESOLVED: g++.dg/modules/iostream-1 -std=c++2a link > UNRESOLVED: g++.dg/modules/iostream-1 -std=c++2a execute > -PASS: g++.dg/modules/iostream-1_a.H -std=c++2b (test for excess errors) > -PASS: g++.dg/modules/iostream-1_a.H module-cmi > (gcm.cache/$srcdir/g++.dg/modules/iostream-1_a.H.gcm) > -PASS: g++.dg/modules/iostream-1_b.C -std=c++2b (test for excess errors) > -PASS: g++.dg/modules/iostream-1 -std=c++2b link > -PASS: g++.dg/modules/iostream-1 -std=c++2b execute > +FAIL: g++.dg/modules/iostream-1_a.H -std=c++2b (test for excess errors) > +FAIL: g++.dg/modules/iostream-1_a.H module-cmi > (gcm.cache/$srcdir/g++.dg/modules/iostream-1_a.H.gcm) > +FAIL: g++.dg/modules/iostream-1_b.C -std=c++2b (test for excess errors) > +UNRESOLVED: g++.dg/modules/iostream-1 -std=c++2b link > +UNRESOLVED: g++.dg/modules/iostream-1 -std=c++2b execute > PASS: g++.dg/modules/keyword-1_a.C -std=c++17 (test for excess errors) > PASS: g++.dg/modules/keyword-1_a.C module-cmi bob (gcm.cache/bob.gcm) > PASS: g++.dg/modules/keyword-1_b.C -std=c++17 (test for excess errors) > @@ -197839,7 +197838,7 @@ > PASS: g++.dg/modules/part-5_a.C module-cmi module1:submodule1 > (gcm.cache/module1-submodule1.gcm) > PASS: g++.dg/modules/part-5_b.C -std=c++2b (test for excess errors) > PASS: g++.dg/modules/part-5_b.C module-cmi module1 (gcm.cache/module1.gcm) > -PASS: g++.dg/modules/part-5_c.C -std=c++2b (test for excess errors) > +FAIL: g++.dg/modules/part-5_c.C -std=c++2b (test for excess errors) > PASS: g++.dg/modules/part-6_a.C -std=c++17 (test for excess errors) > PASS: g++.dg/modules/part-6_a.C module-cmi foo:exp (gcm.cache/foo-exp.gcm) > PASS: g++.dg/modules/part-6_b.C -std=c++17 (test for excess errors) > @@ -238085,10 +238084,10 @@ > > === g++ Summary === > > -# of expected passes 233644 > -# of unexpected failures 124 > +# of expected passes 233619 > +# of unexpected failures 140 > # of expected failures 2215 > -# of unresolved testcases 16 > +# of unresolved testcases 24 > # of unsupported tests 2017 > /home/alx/src/gnu/gcc/.tmp.null/gcc/xg++ version 15.0.0 20241010 > (experimental) (GCC) > > > And here's some entry of the log: > > > $ cat gcc/testsuite/g++/g++.log | grep -B17 -A7 'FAIL: > g++.dg/modules/p1689-2.C -std=c++2b (test for excess errors)' > Executing on host: > /home/alx/src/gnu/gcc/.tmp.null/gcc/testsuite/g++/../../xg++ > -B/home/alx/src/gnu/gcc/.tmp.null/gcc/testsuite/g++/../../ > /home/alx/src/gnu/gcc/null/gcc/testsuite/g++.dg/modules/p1689-2.C > -fdiagnostics-plain-output -nostdinc++ > -I/home/alx/src/gnu/gcc/.tmp.null/x86_64-pc-linux-gnu/libstdc++-v3/include/x86_64-pc-linux-gnu > -I/home/alx/src/gnu/gcc/.tmp.null/x86_64-pc-linux-gnu/libstdc++-v3/include > -I/home/alx/src/gnu/gcc/null/libstdc++-v3/libsupc++ > -I/home/alx/src/gnu/gcc/null/libstdc++-v3/include/backward > -I/home/alx/src/gnu/gcc/null/libstdc++-v3/testsuite/util -fmessage-length=0 > -std=c++2b -pedantic-errors -Wno-long-long -E -MT p1689-2.ddi -MD > -fmodules-ts -fdeps-format=p1689r5 -fdeps-target=p1689-2.o > -fdeps-file=p1689-2.ddi -S -o p1689-2.s (timeout = 300) > spawn -ignore SIGHUP > /home/alx/src/gnu/gcc/.tmp.null/gcc/testsuite/g++/../../xg++ > -B/home/alx/src/gnu/gcc/.tmp.null/gcc/testsuite/g++/../../ > /home/alx/src/gnu/gcc/null/gcc/testsuite/g++.dg/modules/p1689-2.C > -fdiagnostics-plain-output -nostdinc++ > -I/home/alx/src/gnu/gcc/.tmp.null/x86_64-pc-linux-gnu/libstdc++-v3/include/x86_64-pc-linux-gnu > -I/home/alx/src/gnu/gcc/.tmp.null/x86_64-pc-linux-gnu/libstdc++-v3/include > -I/home/alx/src/gnu/gcc/null/libstdc++-v3/libsupc++ > -I/home/alx/src/gnu/gcc/null/libstdc++-v3/include/backward > -I/home/alx/src/gnu/gcc/null/libstdc++-v3/testsuite/util -fmessage-length=0 > -std=c++2b -pedantic-errors -Wno-long-long -E -MT p1689-2.ddi -MD > -fmodules-ts -fdeps-format=p1689r5 -fdeps-target=p1689-2.o > -fdeps-file=p1689-2.ddi -S -o p1689-2.s > In module imported at > /home/alx/src/gnu/gcc/.tmp.null/x86_64-pc-linux-gnu/libstdc++-v3/include/system_error:45:1, > included from > /home/alx/src/gnu/gcc/.tmp.null/x86_64-pc-linux-gnu/libstdc++-v3/include/bits/ios_base.h:48, > from > /home/alx/src/gnu/gcc/.tmp.null/x86_64-pc-linux-gnu/libstdc++-v3/include/ios:46, > from > /home/alx/src/gnu/gcc/.tmp.null/x86_64-pc-linux-gnu/libstdc++-v3/include/ostream:42, > from > /home/alx/src/gnu/gcc/.tmp.null/x86_64-pc-linux-gnu/libstdc++-v3/include/iostream:43, > of module > /home/alx/src/gnu/gcc/.tmp.null/x86_64-pc-linux-gnu/libstdc++-v3/include/iostream, > imported at > /home/alx/src/gnu/gcc/null/gcc/testsuite/g++.dg/modules/p1689-2.C:14: > /home/alx/src/gnu/gcc/.tmp.null/x86_64-pc-linux-gnu/libstdc++-v3/include/stdexcept: > error: module > '/home/alx/src/gnu/gcc/.tmp.null/x86_64-pc-linux-gnu/libstdc++-v3/include/stdexcept' > CRC mismatch > /home/alx/src/gnu/gcc/.tmp.null/x86_64-pc-linux-gnu/libstdc++-v3/include/stdexcept: > error: failed to read compiled module: Bad file data > /home/alx/src/gnu/gcc/.tmp.null/x86_64-pc-linux-gnu/libstdc++-v3/include/stdexcept: > note: compiled module file is > 'gcm.cache/./home/alx/src/gnu/gcc/.tmp.null/x86_64-pc-linux-gnu/libstdc++-v3/include/stdexcept.gcm' > In module imported at > /home/alx/src/gnu/gcc/null/gcc/testsuite/g++.dg/modules/p1689-2.C:14:1: > /home/alx/src/gnu/gcc/.tmp.null/x86_64-pc-linux-gnu/libstdc++-v3/include/iostream: > error: failed to read compiled module: Bad import dependency > /home/alx/src/gnu/gcc/.tmp.null/x86_64-pc-linux-gnu/libstdc++-v3/include/iostream: > note: compiled module file is > 'gcm.cache/./home/alx/src/gnu/gcc/.tmp.null/x86_64-pc-linux-gnu/libstdc++-v3/include/iostream.gcm' > /home/alx/src/gnu/gcc/.tmp.null/x86_64-pc-linux-gnu/libstdc++-v3/include/iostream: > fatal error: returning to the gate for a mechanical issue > compilation terminated. > compiler exited with status 1 > FAIL: g++.dg/modules/p1689-2.C -std=c++2b (test for excess errors) > Excess errors: > /home/alx/src/gnu/gcc/.tmp.null/x86_64-pc-linux-gnu/libstdc++-v3/include/stdexcept: > error: module > '/home/alx/src/gnu/gcc/.tmp.null/x86_64-pc-linux-gnu/libstdc++-v3/include/stdexcept' > CRC mismatch > /home/alx/src/gnu/gcc/.tmp.null/x86_64-pc-linux-gnu/libstdc++-v3/include/stdexcept: > error: failed to read compiled module: Bad file data > /home/alx/src/gnu/gcc/.tmp.null/x86_64-pc-linux-gnu/libstdc++-v3/include/iostream: > error: failed to read compiled module: Bad import dependency > /home/alx/src/gnu/gcc/.tmp.null/x86_64-pc-linux-gnu/libstdc++-v3/include/iostream: > fatal error: returning to the gate for a mechanical issue > compilation terminated. > > > -- > <https://www.alejandro-colomar.es/> -- <https://www.alejandro-colomar.es/>
signature.asc
Description: PGP signature