[libcxx-commits] [PATCH] D134036: [libc++][format] Implements string escaping.
Erich Keane via Phabricator via libcxx-commits
libcxx-commits at lists.llvm.org
Tue Oct 25 11:22:31 PDT 2022
erichkeane added subscribers: urnathan, ChuanqiXu, erichkeane.
erichkeane added a comment.
So I'm seeing a libcxx build failure from this patch, though it is pretty clear it is revealing a Clang bug. I'm having trouble minimizing it though, so I was hoping you/someone here could help with it?
llvm-lit: /iusers/ekeane1/workspaces/delayed-concepts/libcxx/utils/libcxx/test/newconfig.py:19: note: (llvm-libc++-shared.cfg.in) Using %{cxx} substitution: '/iusers/ekeane1/workspaces/delayed-concepts/build/./bin/clang++'
llvm-lit: /iusers/ekeane1/workspaces/delayed-concepts/libcxx/utils/libcxx/test/newconfig.py:19: note: (llvm-libc++-shared.cfg.in) Using %{flags} substitution: ' --target=x86_64-unknown-linux-gnu'
llvm-lit: /iusers/ekeane1/workspaces/delayed-concepts/libcxx/utils/libcxx/test/newconfig.py:19: note: (llvm-libc++-shared.cfg.in) Using %{compile_flags} substitution: '-nostdinc++ -I %{include} -I %{target-include} -I %{libcxx}/test/support -std=c++2b -fmodules -fcxx-modules -Werror -Wall -Wctad-maybe-unsupported -Wextra -Wshadow -Wundef -Wno-unused-command-line-argument -Wno-attributes -Wno-pessimizing-move -Wno-c++11-extensions -Wno-noexcept-type -Wno-atomic-alignment -W
no-user-defined-literals -Wno-tautological-compare -Wsign-compare -Wunused-variable -Wunused-parameter -Wunreachable-code -Wno-unused-local-typedef -D_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER -D_LIBCPP_ENABLE_EXPERIMENTAL -D_LIBCPP_DISABLE_AVAILABILITY -fcoroutines-ts -Werror=thread-safety -Wuser-defined-warnings'
llvm-lit: /iusers/ekeane1/workspaces/delayed-concepts/libcxx/utils/libcxx/test/newconfig.py:19: note: (llvm-libc++-shared.cfg.in) Using %{link_flags} substitution: '-lc++experimental -nostdlib++ -L %{lib} -Wl,-rpath,%{lib} -lc++ -pthread'
llvm-lit: /iusers/ekeane1/workspaces/delayed-concepts/libcxx/utils/libcxx/test/newconfig.py:19: note: (llvm-libc++-shared.cfg.in) Using %{exec} substitution: '%{executor} --execdir %T -- '
llvm-lit: /iusers/ekeane1/workspaces/delayed-concepts/libcxx/utils/libcxx/test/newconfig.py:19: note: (llvm-libc++-shared.cfg.in) All available features: modules-build, verify-support, clang-16.0, locale.fr_CA.ISO8859-1, clang, stdlib=libc++, long_tests, clang-16.0.0, fcoroutines-ts, locale.zh_CN.UTF-8, locale.ja_JP.UTF-8, linux, objective-c++, has-fblocks, target=x86_64-unknown-linux-gnu, buildhost=linux, locale.fr_FR.UTF-8, c++experimental, locale.cs_CZ.ISO8859-2, libcpp
-abi-version=1, fdelayed-template-parsing, diagnose-if-support, locale.en_US.UTF-8, stdlib=llvm-libc++, has-fconstexpr-steps, -fsized-deallocation, clang-16, c++2b, thread-safety, -faligned-allocation, locale.ru_RU.UTF-8, has-unix-headers
FAIL: llvm-libc++-shared.cfg.in :: std/utilities/format/format.functions/escaped_output.ascii.pass.cpp (1 of 7790)
******************** TEST 'llvm-libc++-shared.cfg.in :: std/utilities/format/format.functions/escaped_output.ascii.pass.cpp' FAILED ********************
Script:
--
: 'COMPILED WITH'; /iusers/ekeane1/workspaces/delayed-concepts/build/./bin/clang++ /localdisk2/ekeane1/workspaces/delayed-concepts/libcxx/test/std/utilities/format/format.functions/escaped_output.ascii.pass.cpp --target=x86_64-unknown-linux-gnu -nostdinc++ -I /iusers/ekeane1/workspaces/delayed-concepts/build/include/c++/v1 -I /iusers/ekeane1/workspaces/delayed-concepts/build/include/x86_64-unknown-linux-gnu/c++/v1 -I /iusers/ekeane1/workspaces/delayed-concepts/libcxx/tes
t/support -std=c++2b -fmodules -fcxx-modules -Werror -Wall -Wctad-maybe-unsupported -Wextra -Wshadow -Wundef -Wno-unused-command-line-argument -Wno-attributes -Wno-pessimizing-move -Wno-c++11-extensions -Wno-noexcept-type -Wno-atomic-alignment -Wno-user-defined-literals -Wno-tautological-compare -Wsign-compare -Wunused-variable -Wunused-parameter -Wunreachable-code -Wno-unused-local-typedef -D_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER -D_LIBCPP_ENABLE_EXPERIMENTAL -D_LIBCPP_DISAB
LE_AVAILABILITY -fcoroutines-ts -Werror=thread-safety -Wuser-defined-warnings -D_LIBCPP_HAS_NO_UNICODE -lc++experimental -nostdlib++ -L /iusers/ekeane1/workspaces/delayed-concepts/build/./lib/x86_64-unknown-linux-gnu -Wl,-rpath,/iusers/ekeane1/workspaces/delayed-concepts/build/./lib/x86_64-unknown-linux-gnu -lc++ -pthread -o /localdisk2/ekeane1/workspaces/delayed-concepts/build/runtimes/runtimes-bins/test/std/utilities/format/format.functions/Output/escaped_output.ascii.pa
ss.cpp.dir/t.tmp.exe
: 'EXECUTED AS'; "/usr/bin/python3.6" /iusers/ekeane1/workspaces/delayed-concepts/libcxx/test/../utils/run.py --execdir /localdisk2/ekeane1/workspaces/delayed-concepts/build/runtimes/runtimes-bins/test/std/utilities/format/format.functions/Output/escaped_output.ascii.pass.cpp.dir -- /localdisk2/ekeane1/workspaces/delayed-concepts/build/runtimes/runtimes-bins/test/std/utilities/format/format.functions/Output/escaped_output.ascii.pass.cpp.dir/t.tmp.exe
--
Exit Code: 1
Command Output (stdout):
--
$ ":" "COMPILED WITH"
$ "/iusers/ekeane1/workspaces/delayed-concepts/build/./bin/clang++" "/localdisk2/ekeane1/workspaces/delayed-concepts/libcxx/test/std/utilities/format/format.functions/escaped_output.ascii.pass.cpp" "--target=x86_64-unknown-linux-gnu" "-nostdinc++" "-I" "/iusers/ekeane1/workspaces/delayed-concepts/build/include/c++/v1" "-I" "/iusers/ekeane1/workspaces/delayed-concepts/build/include/x86_64-unknown-linux-gnu/c++/v1" "-I" "/iusers/ekeane1/workspaces/delayed-concepts/libcxx/test/support" "-std=c++2b" "-fmodules" "-fcxx-modules" "-Werror" "-Wall" "-Wctad-maybe-unsupported" "-Wextra" "-Wshadow" "-Wundef" "-Wno-unused-command-line-argument" "-Wno-attributes" "-Wno-pessimizing-move" "-Wno-c++11-extensions" "-Wno-noexcept-type" "-Wno-atomic-alignment" "-Wno-user-defined-literals" "-Wno-tautological-compare" "-Wsign-compare" "-Wunused-variable" "-Wunused-parameter" "-Wunreachable-code" "-Wno-unused-local-typedef" "-D_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER" "-D_LIBCPP_ENABLE_EXPERIMENTAL" "-D_LIBCPP_DISABLE_AVAILABILITY" "-fcoroutines-ts" "-Werror=thread-safety" "-Wuser-defined-warnings" "-D_LIBCPP_HAS_NO_UNICODE" "-lc++experimental" "-nostdlib++" "-L" "/iusers/ekeane1/workspaces/delayed-concepts/build/./lib/x86_64-unknown-linux-gnu" "-Wl,-rpath,/iusers/ekeane1/workspaces/delayed-concepts/build/./lib/x86_64-unknown-linux-gnu" "-lc++" "-pthread" "-o" "/localdisk2/ekeane1/workspaces/delayed-concepts/build/runtimes/runtimes-bins/test/std/utilities/format/format.functions/Output/escaped_output.ascii.pass.cpp.dir/t.tmp.exe"
# command stderr:
clang-16: tools/clang/include/clang/AST/AbstractBasicReader.inc:736: clang::APValue clang::serialization::BasicReaderBase<T>::readAPValue() [with Impl = clang::ASTRecordReader]: Assertion `lvaluePath->getType() == elemTy && "Unexpected type reference!"' failed.
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace, preprocessed source, and associated run script.
Stack dump:
0. Program arguments: /localdisk2/ekeane1/workspaces/delayed-concepts/build/bin/clang-16 -cc1 -triple x86_64-unknown-linux-gnu -emit-obj -mrelax-all --mrelax-relocations -disable-free -clear-ast-before-backend -main-file-name escaped_output.ascii.pass.cpp -mrelocation-model pic -pic-level 2 -pic-is-pie -mframe-pointer=all -fmath-errno -ffp-contract=on -fno-rounding-math -mconstructor-aliases -funwind-tables=2 -target-cpu x86-64 -tune-cpu generic -mllvm -treat-scalable-fixed-error-as-warning -debugger-tuning=gdb -fcoverage-compilation-dir=/localdisk2/ekeane1/workspaces/delayed-concepts/build/runtimes/runtimes-bins/test/std/utilities/format/format.functions -nostdinc++ -resource-dir /localdisk2/ekeane1/workspaces/delayed-concepts/build/lib/clang/16.0.0 -I /iusers/ekeane1/workspaces/delayed-concepts/build/include/c++/v1 -I /iusers/ekeane1/workspaces/delayed-concepts/build/include/x86_64-unknown-linux-gnu/c++/v1 -I /iusers/ekeane1/workspaces/delayed-concepts/libcxx/test/support -D _LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER -D _LIBCPP_ENABLE_EXPERIMENTAL -D _LIBCPP_DISABLE_AVAILABILITY -D _LIBCPP_HAS_NO_UNICODE -internal-isystem /localdisk2/ekeane1/workspaces/delayed-concepts/build/lib/clang/16.0.0/include -internal-isystem /usr/local/include -internal-isystem /usr/lib/gcc/x86_64-redhat-linux/8/../../../../x86_64-redhat-linux/include -internal-externc-isystem /include -internal-externc-isystem /usr/include -Werror -Wall -Wctad-maybe-unsupported -Wextra -Wshadow -Wundef -Wno-unused-command-line-argument -Wno-attributes -Wno-pessimizing-move -Wno-c++11-extensions -Wno-noexcept-type -Wno-atomic-alignment -Wno-user-defined-literals -Wno-tautological-compare -Wsign-compare -Wunused-variable -Wunused-parameter -Wunreachable-code -Wno-unused-local-typedef -Werror=thread-safety -Wuser-defined-warnings -std=c++2b -fdeprecated-macro -fdebug-compilation-dir=/localdisk2/ekeane1/workspaces/delayed-concepts/build/runtimes/runtimes-bins/test/std/utilities/format/format.functions -ferror-limit 19 -pthread -fcoroutines-ts -fgnuc-version=4.2.1 -fmodules -fimplicit-module-maps -fmodules-cache-path=/nfs/site/home/ekeane1/.cache/clang/ModuleCache -fmodules-validate-system-headers -fcxx-exceptions -fexceptions -faddrsig -D__GCC_HAVE_DWARF2_CFI_ASM=1 -o /tmp/lit-tmp-ddqg5hwq/escaped_output-3e7200.o -x c++ /localdisk2/ekeane1/workspaces/delayed-concepts/libcxx/test/std/utilities/format/format.functions/escaped_output.ascii.pass.cpp
1. <eof> parser at end of file
2. Per-file LLVM IR generation
3. /iusers/ekeane1/workspaces/delayed-concepts/build/include/c++/v1/__format/formatter_output.h:443:1: Generating code for declaration 'std::__formatter::__is_escaped_sequence_written'
#0 0x0000000007ff1cff PrintStackTraceSignalHandler(void*) Signals.cpp:0:0
#1 0x0000000007fef44c SignalHandler(int) Signals.cpp:0:0
#2 0x00007f4a9fb0bdd0 __restore_rt sigaction.c:0:0
#3 0x00007f4a9e34e70f raise (/lib64/libc.so.6+0x3770f)
#4 0x00007f4a9e338b25 abort (/lib64/libc.so.6+0x21b25)
#5 0x00007f4a9e3389f9 _nl_load_domain.cold.0 loadmsgcat.c:0:0
#6 0x00007f4a9e346cc6 .annobin___GI___assert_fail.end assert.c:0:0
#7 0x0000000008ddfda8 clang::serialization::BasicReaderBase<clang::ASTRecordReader>::readAPValue() ASTReaderDecl.cpp:0:0
#8 0x0000000008df0c99 clang::ASTStmtReader::VisitConstantExpr(clang::ConstantExpr*) (/localdisk2/ekeane1/workspaces/delayed-concepts/build/bin/clang-16+0x8df0c99)
#9 0x0000000008df1eda clang::ASTReader::ReadStmtFromStream(clang::serialization::ModuleFile&) (/localdisk2/ekeane1/workspaces/delayed-concepts/build/bin/clang-16+0x8df1eda)
#10 0x0000000008d5a3e4 clang::ASTReader::GetExternalDeclStmt(unsigned long) (/localdisk2/ekeane1/workspaces/delayed-concepts/build/bin/clang-16+0x8d5a3e4)
#11 0x000000000ac32830 clang::FunctionDecl::getBody(clang::FunctionDecl const*&) const (/localdisk2/ekeane1/workspaces/delayed-concepts/build/bin/clang-16+0xac32830)
#12 0x00000000084c6f71 clang::CodeGen::CodeGenFunction::GenerateCode(clang::GlobalDecl, llvm::Function*, clang::CodeGen::CGFunctionInfo const&) (/localdisk2/ekeane1/workspaces/delayed-concepts/build/bin/clang-16+0x84c6f71)
#13 0x0000000008418cf6 clang::CodeGen::CodeGenModule::EmitGlobalFunctionDefinition(clang::GlobalDecl, llvm::GlobalValue*) (/localdisk2/ekeane1/workspaces/delayed-concepts/build/bin/clang-16+0x8418cf6)
#14 0x0000000008414db5 clang::CodeGen::CodeGenModule::EmitGlobalDefinition(clang::GlobalDecl, llvm::GlobalValue*) (/localdisk2/ekeane1/workspaces/delayed-concepts/build/bin/clang-16+0x8414db5)
#15 0x000000000841d339 clang::CodeGen::CodeGenModule::EmitDeferred() (/localdisk2/ekeane1/workspaces/delayed-concepts/build/bin/clang-16+0x841d339)
#16 0x000000000841d288 clang::CodeGen::CodeGenModule::EmitDeferred() (/localdisk2/ekeane1/workspaces/delayed-concepts/build/bin/clang-16+0x841d288)
#17 0x000000000841d288 clang::CodeGen::CodeGenModule::EmitDeferred() (/localdisk2/ekeane1/workspaces/delayed-concepts/build/bin/clang-16+0x841d288)
#18 0x000000000841d288 clang::CodeGen::CodeGenModule::EmitDeferred() (/localdisk2/ekeane1/workspaces/delayed-concepts/build/bin/clang-16+0x841d288)
#19 0x000000000841d288 clang::CodeGen::CodeGenModule::EmitDeferred() (/localdisk2/ekeane1/workspaces/delayed-concepts/build/bin/clang-16+0x841d288)
#20 0x000000000841d288 clang::CodeGen::CodeGenModule::EmitDeferred() (/localdisk2/ekeane1/workspaces/delayed-concepts/build/bin/clang-16+0x841d288)
#21 0x000000000841d288 clang::CodeGen::CodeGenModule::EmitDeferred() (/localdisk2/ekeane1/workspaces/delayed-concepts/build/bin/clang-16+0x841d288)
#22 0x000000000841d288 clang::CodeGen::CodeGenModule::EmitDeferred() (/localdisk2/ekeane1/workspaces/delayed-concepts/build/bin/clang-16+0x841d288)
#23 0x000000000841d288 clang::CodeGen::CodeGenModule::EmitDeferred() (/localdisk2/ekeane1/workspaces/delayed-concepts/build/bin/clang-16+0x841d288)
#24 0x000000000841d288 clang::CodeGen::CodeGenModule::EmitDeferred() (/localdisk2/ekeane1/workspaces/delayed-concepts/build/bin/clang-16+0x841d288)
#25 0x000000000841d288 clang::CodeGen::CodeGenModule::EmitDeferred() (/localdisk2/ekeane1/workspaces/delayed-concepts/build/bin/clang-16+0x841d288)
#26 0x000000000841d288 clang::CodeGen::CodeGenModule::EmitDeferred() (/localdisk2/ekeane1/workspaces/delayed-concepts/build/bin/clang-16+0x841d288)
#27 0x000000000841d288 clang::CodeGen::CodeGenModule::EmitDeferred() (/localdisk2/ekeane1/workspaces/delayed-concepts/build/bin/clang-16+0x841d288)
#28 0x000000000841d288 clang::CodeGen::CodeGenModule::EmitDeferred() (/localdisk2/ekeane1/workspaces/delayed-concepts/build/bin/clang-16+0x841d288)
#29 0x000000000841d288 clang::CodeGen::CodeGenModule::EmitDeferred() (/localdisk2/ekeane1/workspaces/delayed-concepts/build/bin/clang-16+0x841d288)
#30 0x000000000841d288 clang::CodeGen::CodeGenModule::EmitDeferred() (/localdisk2/ekeane1/workspaces/delayed-concepts/build/bin/clang-16+0x841d288)
#31 0x000000000841d288 clang::CodeGen::CodeGenModule::EmitDeferred() (/localdisk2/ekeane1/workspaces/delayed-concepts/build/bin/clang-16+0x841d288)
#32 0x00000000084200bd clang::CodeGen::CodeGenModule::Release() (/localdisk2/ekeane1/workspaces/delayed-concepts/build/bin/clang-16+0x84200bd)
#33 0x0000000008d0fb1a (anonymous namespace)::CodeGeneratorImpl::HandleTranslationUnit(clang::ASTContext&) ModuleBuilder.cpp:0:0
#34 0x0000000008d0f29d clang::BackendConsumer::HandleTranslationUnit(clang::ASTContext&) CodeGenAction.cpp:0:0
#35 0x0000000009f41bbd clang::ParseAST(clang::Sema&, bool, bool) (/localdisk2/ekeane1/workspaces/delayed-concepts/build/bin/clang-16+0x9f41bbd)
#36 0x0000000008d0e398 clang::CodeGenAction::ExecuteAction() (/localdisk2/ekeane1/workspaces/delayed-concepts/build/bin/clang-16+0x8d0e398)
#37 0x0000000008c2cf09 clang::FrontendAction::Execute() (/localdisk2/ekeane1/workspaces/delayed-concepts/build/bin/clang-16+0x8c2cf09)
#38 0x0000000008bc1fe1 clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) (/localdisk2/ekeane1/workspaces/delayed-concepts/build/bin/clang-16+0x8bc1fe1)
#39 0x0000000008d05b3b clang::ExecuteCompilerInvocation(clang::CompilerInstance*) (/localdisk2/ekeane1/workspaces/delayed-concepts/build/bin/clang-16+0x8d05b3b)
#40 0x00000000056a2474 cc1_main(llvm::ArrayRef<char const*>, char const*, void*) (/localdisk2/ekeane1/workspaces/delayed-concepts/build/bin/clang-16+0x56a2474)
#41 0x000000000569b057 ExecuteCC1Tool(llvm::SmallVectorImpl<char const*>&) driver.cpp:0:0
#42 0x000000000569f98b clang_main(int, char**) (/localdisk2/ekeane1/workspaces/delayed-concepts/build/bin/clang-16+0x569f98b)
#43 0x00007f4a9e33a6a3 __libc_start_main (/lib64/libc.so.6+0x236a3)
#44 0x000000000569a92e _start (/localdisk2/ekeane1/workspaces/delayed-concepts/build/bin/clang-16+0x569a92e)
clang-16: error: unable to execute command: Aborted (core dumped)
clang-16: error: clang frontend command failed due to signal (use -v to see invocation)
clang version 16.0.0 (https://github.com/llvm/llvm-project.git a48007355a03851f0f9bfcafd7a7865ca7467416)
Target: x86_64-unknown-linux-gnu
Thread model: posix
InstalledDir: /iusers/ekeane1/workspaces/delayed-concepts/build/./bin
clang-16: note: diagnostic msg:
********************
PLEASE ATTACH THE FOLLOWING FILES TO THE BUG REPORT:
Preprocessed source(s) and associated run script(s) are located at:
clang-16: note: diagnostic msg: /tmp/lit-tmp-ddqg5hwq/escaped_output-b4d1d3.cpp
clang-16: note: diagnostic msg: /tmp/lit-tmp-ddqg5hwq/escaped_output-b4d1d3.cache
clang-16: note: diagnostic msg: /tmp/lit-tmp-ddqg5hwq/escaped_output-b4d1d3.sh
clang-16: note: diagnostic msg:
********************
This happens consistently for me (across a number of files), in all compile modes, but with libcxx modules enabled
cmake -G Ninja ../llvm -DCMAKE_BUILD_TYPE=Release -DLLVM_ENABLE_ASSERTIONS=On -DLLVM_ENABLE_PROJECTS="clang;lldb" -DLLVM_ENABLE_RUNTIMES="libcxx;libcxxabi" -DLLVM_USE_LINKER=lld -DLIBCXX_TEST_PARAMS="enable_modules=True"
I just don't really have a good idea how to debug it however, nor what ended up causing this. So any help you could provide would be grately appreciated. The result as it sits is that I have no ability to test libcxx. Also, perhaps @ChuanqiXu or @urnathan have some idea, as this DOES seem modules related.
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D134036/new/
https://reviews.llvm.org/D134036
More information about the libcxx-commits
mailing list