User Details
- User Since
- Sep 8 2017, 3:58 PM (316 w, 5 d)
Fri, Sep 15
Aug 14 2023
Peter's out of office. This patch looks fine to me, and I'll land it for you.
Aug 3 2023
Hi folks,
Jul 31 2023
Final updates.
Jul 25 2023
More comment updates.
Jul 24 2023
Update with comments from Ray.
Jul 20 2023
$ lldb /home/mitchp/build/libcxx_build_msan/test/std/input.output/iostream.format/print.fun/Output/vprint_nonunicode.file.pass.cpp.dir/t.tmp.exe (lldb) target create "/home/mitchp/build/libcxx_build_msan/test/std/input.output/iostream.format/print.fun/Output/vprint_nonunicode.file.pass.cpp.dir/t.tmp.exe" Current executable set to '/home/mitchp/build/libcxx_build_msan/test/std/input.output/iostream.format/print.fun/Output/vprint_nonunicode.file.pass.cpp.dir/t.tmp.exe' (aarch64). (lldb) r Process 737940 launched: '/home/mitchp/build/libcxx_build_msan/test/std/input.output/iostream.format/print.fun/Output/vprint_nonunicode.file.pass.cpp.dir/t.tmp.exe' (aarch64) Process 737940 stopped and restarted: thread 1 received signal: SIGCHLD libc++abi: terminating due to uncaught exception of type std::__1::format_error: Argument index out of bounds Process 737940 stopped * thread #1, name = 't.tmp.exe', stop reason = signal SIGABRT frame #0: 0x0000fffff7ac7eac libc.so.6`__GI_raise(sig=6) at raise.c:51:1 (lldb) bt * thread #1, name = 't.tmp.exe', stop reason = signal SIGABRT * frame #0: 0x0000fffff7ac7eac libc.so.6`__GI_raise(sig=6) at raise.c:51:1 frame #1: 0x0000fffff7ab4aa0 libc.so.6`__GI_abort at abort.c:79:7 frame #2: 0x0000fffff7dd4948 libc++abi.so.1`abort_message at abort_message.cpp:78:5 frame #3: 0x0000fffff7d8a1f0 libc++abi.so.1`::demangling_terminate_handler() at cxa_default_handlers.cpp:72:9 frame #4: 0x0000fffff7dd3138 libc++abi.so.1`std::__terminate(void (*)()) at cxa_handlers.cpp:59:9 frame #5: 0x0000fffff7dda23c libc++abi.so.1`__cxxabiv1::failed_throw(__cxxabiv1::__cxa_exception*) at cxa_exception.cpp:152:5 frame #6: 0x0000fffff7dda168 libc++abi.so.1`::__cxa_throw() at cxa_exception.cpp:283:5 frame #7: 0x0000aaaaaabdbfac t.tmp.exe`std::__1::__throw_format_error[abi:v170000](__s="Argument index out of bounds") at format_error.h:41:3 frame #8: 0x0000aaaaaabdf058 t.tmp.exe`auto char const* std::__1::__format::__handle_replacement_field[abi:v170000]<char const*, std::__1::basic_format_parse_context<char>, std::__1::basic_format_cont ext<std::__1::back_insert_iterator<std::__1::__format::__output_buffer<char>>, char>>(this=0x0000ffffffffe0c0, __arg=monostate @ 0x0000ffffffffdeaf)::'lambda'(char const*)::operator()<std::__1::monostate> (char const*) const at format_functions.h:274:13 frame #9: 0x0000aaaaaabdefe8 t.tmp.exe`decltype(std::declval<char const*>()(std::declval<std::__1::monostate&>())) std::__1::__invoke[abi:v170000]<char const* std::__1::__format::__handle_replacement_ field[abi:v170000]<char const*, std::__1::basic_format_parse_context<char>, std::__1::basic_format_context<std::__1::back_insert_iterator<std::__1::__format::__output_buffer<char>>, char>>(char const*, ch ar const*, std::__1::basic_format_parse_context<char>&, std::__1::basic_format_context<std::__1::back_insert_iterator<std::__1::__format::__output_buffer<char>>, char>&)::'lambda'(char const*), std::__1:: monostate&>(__f=0x0000ffffffffe0c0, __args=0x0000ffffffffe0a0) at invoke.h:340:25 frame #10: 0x0000aaaaaabde430 t.tmp.exe`std::__1::invoke_result<char const*, std::__1::monostate&>::type std::__1::invoke[abi:v170000]<char const* std::__1::__format::__handle_replacement_field[abi:v1 70000]<char const*, std::__1::basic_format_parse_context<char>, std::__1::basic_format_context<std::__1::back_insert_iterator<std::__1::__format::__output_buffer<char>>, char>>(char const*, char const*, s td::__1::basic_format_parse_context<char>&, std::__1::basic_format_context<std::__1::back_insert_iterator<std::__1::__format::__output_buffer<char>>, char>&)::'lambda'(char const*), std::__1::monostate&>( __f=0x0000ffffffffe0c0, __args=0x0000ffffffffe0a0) at invoke.h:30:12 frame #11: 0x0000aaaaaabdcfa0 t.tmp.exe`decltype(auto) std::__1::__visit_format_arg[abi:v170000]<char const* std::__1::__format::__handle_replacement_field[abi:v170000]<char const*, std::__1::basic_fo rmat_parse_context<char>, std::__1::basic_format_context<std::__1::back_insert_iterator<std::__1::__format::__output_buffer<char>>, char>>(char const*, char const*, std::__1::basic_format_parse_context<ch ar>&, std::__1::basic_format_context<std::__1::back_insert_iterator<std::__1::__format::__output_buffer<char>>, char>&)::'lambda'(char const*), std::__1::basic_format_context<std::__1::back_insert_iterato r<std::__1::__format::__output_buffer<char>>, char>>(__vis=0x0000ffffffffe0c0, __arg=basic_format_arg<std::__1::basic_format_context<std::__1::back_insert_iterator<std::__1::__format::__output_buffer<char > >, char> > @ 0x0000ffffffffe0a0) at format_arg.h:103:12 frame #12: 0x0000aaaaaabdc404 t.tmp.exe`char const* std::__1::__format::__handle_replacement_field[abi:v170000]<char const*, std::__1::basic_format_parse_context<char>, std::__1::basic_format_context< std::__1::back_insert_iterator<std::__1::__format::__output_buffer<char>>, char>>(__begin="}", __end="", __parse_ctx=0x0000ffffffffe408, __ctx=0x0000ffffffffe3c8) at format_functions.h:271:5 frame #13: 0x0000aaaaaabd7ddc t.tmp.exe`std::__1::basic_format_context<std::__1::back_insert_iterator<std::__1::__format::__output_buffer<char>>, char>::iterator std::__1::__format::__vformat_to[abi:v 170000]<std::__1::basic_format_parse_context<char>, std::__1::basic_format_context<std::__1::back_insert_iterator<std::__1::__format::__output_buffer<char>>, char>>(__parse_ctx=0x0000ffffffffe408, __ctx=0 x0000ffffffffe3c8) at format_functions.h:312:13 frame #14: 0x0000aaaaaabd7738 t.tmp.exe`std::__1::back_insert_iterator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>> std::__1::__vformat_to[abi:v170000]<std::__1::back_insert_iterator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>>, char, std::__1::back_insert_iterator<std::__1::__format::__output_buffer<char>>>(__out_it=(container = ""), __fmt="hello {}", __args=basic_format_args<std::__1::basic_format_context<std::__1::back_insert_iterator<std::__1::__format::__output_buffer<char> >, char> > @ 0x0000ffffffffe808) at format_functions.h:387:5 frame #15: 0x0000aaaaaabd6ee4 t.tmp.exe`void std::__1::__print::__vprint_nonunicode[abi:v170000]<void>(_IO_FILE*, std::__1::basic_string_view<char, std::__1::char_traits<char>>, std::__1::basic_format_args<std::__1::basic_format_context<std::__1::back_insert_iterator<std::__1::__format::__output_buffer<char>>, char>>, bool) [inlined] std::__1::back_insert_iterator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>> std::__1::vformat_to[abi:v170000]<std::__1::back_insert_iterator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>>>(__out_it=(container = ""), __fmt="hello {}", __args=std::__1::format_args @ 0x0000ffffffffe7a0) at format_functions.h:399:10 frame #16: 0x0000aaaaaabd6e5c t.tmp.exe`void std::__1::__print::__vprint_nonunicode[abi:v170000]<void>(_IO_FILE*, std::__1::basic_string_view<char, std::__1::char_traits<char>>, std::__1::basic_format_args<std::__1::basic_format_context<std::__1::back_insert_iterator<std::__1::__format::__output_buffer<char>>, char>>, bool) [inlined] std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> std::__1::vformat[abi:v170000]<void>(__fmt="hello {}", __args=std::__1::format_args @ 0x0000ffffffffe730) at format_functions.h:432:3 frame #17: 0x0000aaaaaabd6d3c t.tmp.exe`void std::__1::__print::__vprint_nonunicode[abi:v170000]<void>(__stream=0x0000e14000000000, __fmt="hello {}", __args=std::__1::format_args @ 0x0000ffffffffe8c8, __write_nl=false) at print:208:18 frame #18: 0x0000aaaaaabd6850 t.tmp.exe`void std::__1::vprint_nonunicode[abi:v170000]<void>(__stream=0x0000e14000000000, __fmt="hello {}", __args=std::__1::format_args @ 0x0000ffffffffea38) at print:355:3 frame #19: 0x0000aaaaaabc1510 t.tmp.exe`auto $_1::operator()<>(this=0x0000fffffffff2f6, what="Argument index out of bounds", fmt="hello {}") const at vprint_nonunicode.file.pass.cpp:57:3 frame #20: 0x0000aaaaaabbb3f0 t.tmp.exe`void print_tests<$_0, $_1>(check=(unnamed class) @ 0x0000fffffffff2f7, check_exception=(unnamed class) @ 0x0000fffffffff2f6) at print_tests.h:78:3 frame #21: 0x0000aaaaaabb9d9c t.tmp.exe`main((null)=1, (null)=0x0000fffffffff4e8) at vprint_nonunicode.file.pass.cpp:134:3 frame #22: 0x0000fffff7ab4e18 libc.so.6`__libc_start_main(main=(t.tmp.exe`main at vprint_nonunicode.file.pass.cpp:133), argc=1, argv=0x0000fffffffff4e8, init=<unavailable>, fini=<unavailable>, rtld_fini=<unavailable>, stack_end=<unavailable>) at libc-start.c:308:16 frame #23: 0x0000aaaaaab31df4 t.tmp.exe`_start + 52
Jul 19 2023
Edit: May have misattributed this due to changes in vprint files, but I'm bisecting now. There were ~4 other libcxx changes that I'm not 100% confident this is the culprit.
Hi, we're still seeing sanitizer buildbot failures from what I assume is this patch.
Jul 18 2023
Friendly ping @MaskRay
Jul 17 2023
Hi Johannes, looks like this broke the UBSan buildbot: https://lab.llvm.org/buildbot/#/builders/85/builds/17728/steps/13/logs/stdio
Hey @Caslyn, looks like this unfortunately didn't fix the buildbot breakage caused by https://reviews.llvm.org/D155272, I still see UBSan-ThreadSanitizer-aarch64 :: TestCases/Misc/Linux/sigaction.cpp broken at head (https://lab.llvm.org/buildbot/#/builders/238/builds/4398).
Jul 13 2023
Move to '-' from '-1 *'
Jul 12 2023
Update w/ Ray's comments.
Jul 10 2023
Update from comments.
Jul 7 2023
Update from Peter's test comments.
Jun 29 2023
Update from Peter's comments (thanks for the review!).
Jun 22 2023
Hi folks,
Jun 21 2023
Hi folks, I did a bisect and unfortunately this broke the HWASan buildbot. It only showed up on the build after yours because your patch was included in a set that was broken for other reasons. https://lab.llvm.org/buildbot/#/builders/236/builds/4911
Jun 20 2023
Hi, looks like this broke the sanitizer buildbots: https://lab.llvm.org/buildbot/#/builders/5/builds/34555/steps/10/logs/stdio
Jun 15 2023
Yeah, I agree.
Jun 14 2023
Jun 12 2023
Looks good to me. Have you considered adding a quick and dirty fuzz target (e.g. compiler-rt/tools/gwp_asan/options_parser_fuzzer.cpp)?
LGTM
May 26 2023
Hey, found another error that occurs when building Android that looks to be different from @MaskRay's revert.
May 17 2023
Update from Vitaly's comments.
May 16 2023
May 15 2023
Looks good to me, but I'd like @pcc to also confirm.
Apr 26 2023
LGTM w/ nit
Apr 18 2023
LGTM w/ nit.
Apr 12 2023
Apr 10 2023
Add more tests for edge cases in decoding.
Apr 3 2023
Mar 31 2023
Ah, looks fixed in d4af896572592.
G'day, looks like you made a mistake here: https://lab.llvm.org/buildbot/#/builders/236/builds/3155
Mar 30 2023
Mar 29 2023
This might've broken builds? Either that, or one of your other three patches.
No problems at all! In case you're not familiar, ODR is explained a little in our docs (and the other stuff that's linked there). Best bet to track it down is to figure out why llvm/lib/Support/ABIBreak.cpp is linked twice.
Already reverted in https://reviews.llvm.org/rG270067d69532448c4f6d7956e68d7a392857f9ce :)
Hi, looks like this re-land triggered an ASan-detected heap leak: https://lab.llvm.org/buildbot/#/builders/5/builds/32516
Hey, looks like this breaks check-sanitizer on all the bots. Easily reproducible on a vanilla build, just do check-sanitizer on something that builds compiler-rt.
Hi folks, looks like this broke ASan buildbots because of an ODR. Full reproduction instructions can be found at https://github.com/google/sanitizers/wiki/SanitizerBotReproduceBuild (either using buildbot_fast.sh or buildbot_bootstrap_asan.sh), or alternatively this is quickly reproducible without a multi-stage build using my example cmake config below (which definitely has some stuff you don't need, like libc):
Mar 27 2023
Hi, yep, I've reverted upstream. If you could please also integrate https://reviews.llvm.org/rG8c7c1f11ffaacf762e612c65440fd2cbb58ee426 in the relanding, that would be great.
Mar 20 2023
Add some extra edge case tests.
Any ideas why this was IE in the first place? Don't see any notes in the patch that added it (https://reviews.llvm.org/D37156)?
Mar 17 2023
Address jhenderson@'s comments.