Results for nix-idioms.test.sh

statusoshosh-cpp
pass 44
FAIL 22
total66
caseoshosh-cppdescription
0pass pass var ref to array 'preHooks[@]'
1pass pass Similar to above with set -u
2pass pass ${!ref} to undefined array
3pass pass ${!ref} to undefined string var is fatal, INCONSISTENT with array
4FAIL FAIL export with dynamic var name +=
detailsdetails
5FAIL FAIL let idiom can be written in POSIX shell - eval ": \$(( ))"
detailsdetails
8 passed, 0 OK, 0 not implemented, 0 BUG, 2 failed, 0 timeouts, 0 cases skipped
2 failed under osh

Details on runs that didn't PASS

osh4 export with dynamic var name +=

[osh stdout] Expected "declare -x NIX_LDFLAGS_foo=' -Lone/lib64'\n" Got ''
[osh status] Expected 0, got 1
[osh stderr] Found 'Traceback (most recent'

stdout:
stderr: 
Traceback (most recent call last):
  File "/home/uke/oil/bin/oils_for_unix.py", line 202, in <module>
    sys.exit(main(sys.argv))
  File "/home/uke/oil/bin/oils_for_unix.py", line 171, in main
    return AppBundleMain(argv)
  File "/home/uke/oil/bin/oils_for_unix.py", line 141, in AppBundleMain
    return shell.Main('osh', arg_r, environ, login_shell, loader, readline)
  File "/home/uke/oil/core/shell.py", line 1213, in Main
    cmd_flags=cmd_eval.IsMainProgram)
  File "/home/uke/oil/core/main_loop.py", line 375, in Batch
    is_return, is_fatal = cmd_ev.ExecuteAndCatch(node, cmd_flags)
  File "/home/uke/oil/osh/cmd_eval.py", line 2109, in ExecuteAndCatch
    status = self._Execute(node)
  File "/home/uke/oil/osh/cmd_eval.py", line 1908, in _Execute
    status = self._Dispatch(node, cmd_st)
  File "/home/uke/oil/osh/cmd_eval.py", line 1635, in _Dispatch
    status = self._DoSimple(node, cmd_st)
  File "/home/uke/oil/osh/cmd_eval.py", line 914, in _DoSimple
    status = self._RunSimpleCommand(cmd_val, cmd_st, run_flags)
  File "/home/uke/oil/osh/cmd_eval.py", line 575, in _RunSimpleCommand
    run_flags)
  File "/home/uke/oil/core/executor.py", line 420, in RunSimpleCommand
    status = self.cmd_ev.RunProc(proc, cmd_val)
  File "/home/uke/oil/osh/cmd_eval.py", line 2323, in RunProc
    status = self._Execute(proc.body)
  File "/home/uke/oil/osh/cmd_eval.py", line 1908, in _Execute
    status = self._Dispatch(node, cmd_st)
  File "/home/uke/oil/osh/cmd_eval.py", line 1754, in _Dispatch
    status = self._ExecuteList(node.children)
  File "/home/uke/oil/osh/cmd_eval.py", line 1985, in _ExecuteList
    status = self._Execute(child)
  File "/home/uke/oil/osh/cmd_eval.py", line 1908, in _Execute
    status = self._Dispatch(node, cmd_st)
  File "/home/uke/oil/osh/cmd_eval.py", line 1635, in _Dispatch
    status = self._DoSimple(node, cmd_st)
  File "/home/uke/oil/osh/cmd_eval.py", line 914, in _DoSimple
    status = self._RunSimpleCommand(cmd_val, cmd_st, run_flags)
  File "/home/uke/oil/osh/cmd_eval.py", line 575, in _RunSimpleCommand
    run_flags)
  File "/home/uke/oil/core/executor.py", line 381, in RunSimpleCommand
    status = self.RunBuiltin(builtin_id, cmd_val)
  File "/home/uke/oil/core/executor.py", line 313, in RunBuiltin
    return self.RunBuiltinProc(builtin_proc, cmd_val)
  File "/home/uke/oil/core/executor.py", line 323, in RunBuiltinProc
    status = builtin_proc.Run(cmd_val)
  File "/home/uke/oil/builtin/meta_oils.py", line 101, in Run
    cmd_flags=cmd_eval.RaiseControlFlow)
  File "/home/uke/oil/core/main_loop.py", line 375, in Batch
    is_return, is_fatal = cmd_ev.ExecuteAndCatch(node, cmd_flags)
  File "/home/uke/oil/osh/cmd_eval.py", line 2109, in ExecuteAndCatch
    status = self._Execute(node)
  File "/home/uke/oil/osh/cmd_eval.py", line 1908, in _Execute
    status = self._Dispatch(node, cmd_st)
  File "/home/uke/oil/osh/cmd_eval.py", line 1645, in _Dispatch
    status = self._DoShAssignment(node, cmd_st)
  File "/home/uke/oil/osh/cmd_eval.py", line 988, in _DoShAssignment
    node.left)
  File "/home/uke/oil/osh/sh_expr_eval.py", line 134, in OldValue
    val = cell.val
AttributeError: 'NoneType' object has no attribute 'val'
osh-cpp4 export with dynamic var name +=

[osh-cpp stdout] Expected "declare -x NIX_LDFLAGS_foo=' -Lone/lib64'\n" Got ''
[osh-cpp status] Expected 0, got 1

stdout:
stderr: 
AddressSanitizer:DEADLYSIGNAL
=================================================================
==17951==ERROR: AddressSanitizer: SEGV on unknown address 0x000000000000 (pc 0x565444cff0cf bp 0x7ffd5ff2f1d0 sp 0x7ffd5ff2eb20 T0)
==17951==The signal is caused by a READ memory access.
==17951==Hint: address points to the zero page.
    #0 0x565444cff0ce in sh_expr_eval::OldValue(value_asdl::sh_lvalue_t*, state::Mem*, optview::Exec*, syntax_asdl::loc_t*) _gen/bin/oils_for_unix.mycpp.cc:42390
    #1 0x565444cbcad3 in cmd_eval::CommandEvaluator::_DoShAssignment(syntax_asdl::command__ShAssignment*, runtime_asdl::CommandStatus*) _gen/bin/oils_for_unix.mycpp.cc:37274
    #2 0x565444cc68ae in cmd_eval::CommandEvaluator::_Dispatch(syntax_asdl::command_t*, runtime_asdl::CommandStatus*) _gen/bin/oils_for_unix.mycpp.cc:38030
    #3 0x565444cc95be in cmd_eval::CommandEvaluator::_Execute(syntax_asdl::command_t*) _gen/bin/oils_for_unix.mycpp.cc:38302
    #4 0x565444ccb312 in cmd_eval::CommandEvaluator::ExecuteAndCatch(syntax_asdl::command_t*, int) _gen/bin/oils_for_unix.mycpp.cc:38473
    #5 0x565444c183f9 in main_loop::Batch(cmd_eval::CommandEvaluator*, cmd_parse::CommandParser*, ui::ErrorFormatter*, int) _gen/bin/oils_for_unix.mycpp.cc:24883
    #6 0x565444b803d6 in meta_oils::Eval::Run(runtime_asdl::cmd_value__Argv*) _gen/bin/oils_for_unix.mycpp.cc:14613
    #7 0x565444c0d640 in executor::ShellExecutor::RunBuiltinProc(vm::_Builtin*, runtime_asdl::cmd_value__Argv*) _gen/bin/oils_for_unix.mycpp.cc:24100
    #8 0x565444c0d1dc in executor::ShellExecutor::RunBuiltin(int, runtime_asdl::cmd_value__Argv*) _gen/bin/oils_for_unix.mycpp.cc:24080
    #9 0x565444c0e92a in executor::ShellExecutor::RunSimpleCommand(runtime_asdl::cmd_value__Argv*, runtime_asdl::CommandStatus*, int) _gen/bin/oils_for_unix.mycpp.cc:24181
    #10 0x565444cb50b4 in cmd_eval::CommandEvaluator::_RunSimpleCommand(runtime_asdl::cmd_value_t*, runtime_asdl::CommandStatus*, int) _gen/bin/oils_for_unix.mycpp.cc:36792
    #11 0x565444cbb593 in cmd_eval::CommandEvaluator::_DoSimple(syntax_asdl::command__Simple*, runtime_asdl::CommandStatus*) _gen/bin/oils_for_unix.mycpp.cc:37192
    #12 0x565444cc6795 in cmd_eval::CommandEvaluator::_Dispatch(syntax_asdl::command_t*, runtime_asdl::CommandStatus*) _gen/bin/oils_for_unix.mycpp.cc:38022
    #13 0x565444cc95be in cmd_eval::CommandEvaluator::_Execute(syntax_asdl::command_t*) _gen/bin/oils_for_unix.mycpp.cc:38302
    #14 0x565444cca37c in cmd_eval::CommandEvaluator::_ExecuteList(List<syntax_asdl::command_t*>*) _gen/bin/oils_for_unix.mycpp.cc:38367
    #15 0x565444cc7720 in cmd_eval::CommandEvaluator::_Dispatch(syntax_asdl::command_t*, runtime_asdl::CommandStatus*) _gen/bin/oils_for_unix.mycpp.cc:38126
    #16 0x565444cc95be in cmd_eval::CommandEvaluator::_Execute(syntax_asdl::command_t*) _gen/bin/oils_for_unix.mycpp.cc:38302
    #17 0x565444ccd2ae in cmd_eval::CommandEvaluator::RunProc(value_asdl::value__Proc*, runtime_asdl::cmd_value__Argv*) _gen/bin/oils_for_unix.mycpp.cc:38641
    #18 0x565444c0eeba in executor::ShellExecutor::RunSimpleCommand(runtime_asdl::cmd_value__Argv*, runtime_asdl::CommandStatus*, int) _gen/bin/oils_for_unix.mycpp.cc:24211
    #19 0x565444cb50b4 in cmd_eval::CommandEvaluator::_RunSimpleCommand(runtime_asdl::cmd_value_t*, runtime_asdl::CommandStatus*, int) _gen/bin/oils_for_unix.mycpp.cc:36792
    #20 0x565444cbb593 in cmd_eval::CommandEvaluator::_DoSimple(syntax_asdl::command__Simple*, runtime_asdl::CommandStatus*) _gen/bin/oils_for_unix.mycpp.cc:37192
    #21 0x565444cc6795 in cmd_eval::CommandEvaluator::_Dispatch(syntax_asdl::command_t*, runtime_asdl::CommandStatus*) _gen/bin/oils_for_unix.mycpp.cc:38022
    #22 0x565444cc95be in cmd_eval::CommandEvaluator::_Execute(syntax_asdl::command_t*) _gen/bin/oils_for_unix.mycpp.cc:38302
    #23 0x565444ccb312 in cmd_eval::CommandEvaluator::ExecuteAndCatch(syntax_asdl::command_t*, int) _gen/bin/oils_for_unix.mycpp.cc:38473
    #24 0x565444c183f9 in main_loop::Batch(cmd_eval::CommandEvaluator*, cmd_parse::CommandParser*, ui::ErrorFormatter*, int) _gen/bin/oils_for_unix.mycpp.cc:24883
    #25 0x565444ddc858 in shell::Main(BigStr*, args::Reader*, Dict<BigStr*, BigStr*>*, bool, pyutil::_ResourceLoader*, py_readline::Readline*) _gen/bin/oils_for_unix.mycpp.cc:59433
    #26 0x565444b48a73 in oils_for_unix::AppBundleMain(List<BigStr*>*) _gen/bin/oils_for_unix.mycpp.cc:10814
    #27 0x565444b48fbf in oils_for_unix::main(List<BigStr*>*) _gen/bin/oils_for_unix.mycpp.cc:10846
    #28 0x565444dded97 in main _gen/bin/oils_for_unix.mycpp.cc:59458
    #29 0x7f854a5e009a in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x2409a)
    #30 0x565444b26fd9 in _start (/home/uke/oil/_bin/cxx-asan/oils-for-unix+0x13afd9)

AddressSanitizer can not provide additional info.
SUMMARY: AddressSanitizer: SEGV _gen/bin/oils_for_unix.mycpp.cc:42390 in sh_expr_eval::OldValue(value_asdl::sh_lvalue_t*, state::Mem*, optview::Exec*, syntax_asdl::loc_t*)
==17951==ABORTING
osh5 let idiom can be written in POSIX shell - eval ": \$(( ))"

[osh stdout] Expected 'i=0\nNIX_ENFORCE_NO_NATIVE=0\nNIX_ENFORCE_NO_NATIVE_x86_64_unknown_linux_gnu=0\n\ni=1\nNIX_ENFORCE_NO_NATIVE=1\nNIX_ENFORCE_NO_NATIVE_x86_64_unknown_linux_gnu=1\n\ni=2\nNIX_ENFORCE_NO_NATIVE=2\nNIX_ENFORCE_NO_NATIVE_x86_64_unknown_linux_gnu=3\n\n' Got 'i=0\n'
[osh status] Expected 0, got 1
[osh stderr] Found 'Traceback (most recent'

stdout:
i=0
stderr:
Traceback (most recent call last):
  File "/home/uke/oil/bin/oils_for_unix.py", line 202, in <module>
    sys.exit(main(sys.argv))
  File "/home/uke/oil/bin/oils_for_unix.py", line 171, in main
    return AppBundleMain(argv)
  File "/home/uke/oil/bin/oils_for_unix.py", line 141, in AppBundleMain
    return shell.Main('osh', arg_r, environ, login_shell, loader, readline)
  File "/home/uke/oil/core/shell.py", line 1213, in Main
    cmd_flags=cmd_eval.IsMainProgram)
  File "/home/uke/oil/core/main_loop.py", line 375, in Batch
    is_return, is_fatal = cmd_ev.ExecuteAndCatch(node, cmd_flags)
  File "/home/uke/oil/osh/cmd_eval.py", line 2109, in ExecuteAndCatch
    status = self._Execute(node)
  File "/home/uke/oil/osh/cmd_eval.py", line 1908, in _Execute
    status = self._Dispatch(node, cmd_st)
  File "/home/uke/oil/osh/cmd_eval.py", line 1795, in _Dispatch
    status = self._DoForEach(node)
  File "/home/uke/oil/osh/cmd_eval.py", line 1333, in _DoForEach
    status = self._Execute(node.body)  # last one wins
  File "/home/uke/oil/osh/cmd_eval.py", line 1908, in _Execute
    status = self._Dispatch(node, cmd_st)
  File "/home/uke/oil/osh/cmd_eval.py", line 1750, in _Dispatch
    status = self._ExecuteList(node.children)
  File "/home/uke/oil/osh/cmd_eval.py", line 1985, in _ExecuteList
    status = self._Execute(child)
  File "/home/uke/oil/osh/cmd_eval.py", line 1908, in _Execute
    status = self._Dispatch(node, cmd_st)
  File "/home/uke/oil/osh/cmd_eval.py", line 1771, in _Dispatch
    status = self._DoIf(node)
  File "/home/uke/oil/osh/cmd_eval.py", line 1426, in _DoIf
    status = self._ExecuteList(node.else_action)
  File "/home/uke/oil/osh/cmd_eval.py", line 1985, in _ExecuteList
    status = self._Execute(child)
  File "/home/uke/oil/osh/cmd_eval.py", line 1908, in _Execute
    status = self._Dispatch(node, cmd_st)
  File "/home/uke/oil/osh/cmd_eval.py", line 1635, in _Dispatch
    status = self._DoSimple(node, cmd_st)
  File "/home/uke/oil/osh/cmd_eval.py", line 914, in _DoSimple
    status = self._RunSimpleCommand(cmd_val, cmd_st, run_flags)
  File "/home/uke/oil/osh/cmd_eval.py", line 575, in _RunSimpleCommand
    run_flags)
  File "/home/uke/oil/core/executor.py", line 381, in RunSimpleCommand
    status = self.RunBuiltin(builtin_id, cmd_val)
  File "/home/uke/oil/core/executor.py", line 313, in RunBuiltin
    return self.RunBuiltinProc(builtin_proc, cmd_val)
  File "/home/uke/oil/core/executor.py", line 323, in RunBuiltinProc
    status = builtin_proc.Run(cmd_val)
  File "/home/uke/oil/builtin/meta_oils.py", line 101, in Run
    cmd_flags=cmd_eval.RaiseControlFlow)
  File "/home/uke/oil/core/main_loop.py", line 375, in Batch
    is_return, is_fatal = cmd_ev.ExecuteAndCatch(node, cmd_flags)
  File "/home/uke/oil/osh/cmd_eval.py", line 2109, in ExecuteAndCatch
    status = self._Execute(node)
  File "/home/uke/oil/osh/cmd_eval.py", line 1908, in _Execute
    status = self._Dispatch(node, cmd_st)
  File "/home/uke/oil/osh/cmd_eval.py", line 1635, in _Dispatch
    status = self._DoSimple(node, cmd_st)
  File "/home/uke/oil/osh/cmd_eval.py", line 859, in _DoSimple
    allow_assign=True)
  File "/home/uke/oil/osh/word_eval.py", line 2516, in EvalWordSequence2
    self._EvalWordToParts(w, part_vals, EXTGLOB_FILES)
  File "/home/uke/oil/osh/word_eval.py", line 1985, in _EvalWordToParts
    self._EvalWordPart(p, word_part_vals, eval_flags)
  File "/home/uke/oil/osh/word_eval.py", line 1905, in _EvalWordPart
    num = self.arith_ev.EvalToBigInt(part.anode)
  File "/home/uke/oil/osh/sh_expr_eval.py", line 553, in EvalToBigInt
    val = self.Eval(node)
  File "/home/uke/oil/osh/sh_expr_eval.py", line 648, in Eval
    old_big, lval = self._EvalLhsAndLookupArith(node.left)
  File "/home/uke/oil/osh/sh_expr_eval.py", line 520, in _EvalLhsAndLookupArith
    location.TokenForArith(node))
  File "/home/uke/oil/osh/sh_expr_eval.py", line 134, in OldValue
    val = cell.val
AttributeError: 'NoneType' object has no attribute 'val'
osh-cpp5 let idiom can be written in POSIX shell - eval ": \$(( ))"

[osh-cpp stdout] Expected 'i=0\nNIX_ENFORCE_NO_NATIVE=0\nNIX_ENFORCE_NO_NATIVE_x86_64_unknown_linux_gnu=0\n\ni=1\nNIX_ENFORCE_NO_NATIVE=1\nNIX_ENFORCE_NO_NATIVE_x86_64_unknown_linux_gnu=1\n\ni=2\nNIX_ENFORCE_NO_NATIVE=2\nNIX_ENFORCE_NO_NATIVE_x86_64_unknown_linux_gnu=3\n\n' Got 'i=0\n'
[osh-cpp status] Expected 0, got 1

stdout:
i=0
stderr:
AddressSanitizer:DEADLYSIGNAL
=================================================================
==17982==ERROR: AddressSanitizer: SEGV on unknown address 0x000000000000 (pc 0x5640c142e0cf bp 0x7ffef07501d0 sp 0x7ffef074fb20 T0)
==17982==The signal is caused by a READ memory access.
==17982==Hint: address points to the zero page.
    #0 0x5640c142e0ce in sh_expr_eval::OldValue(value_asdl::sh_lvalue_t*, state::Mem*, optview::Exec*, syntax_asdl::loc_t*) _gen/bin/oils_for_unix.mycpp.cc:42390
    #1 0x5640c143251b in sh_expr_eval::ArithEvaluator::_EvalLhsAndLookupArith(syntax_asdl::arith_expr_t*) _gen/bin/oils_for_unix.mycpp.cc:42771
    #2 0x5640c143453b in sh_expr_eval::ArithEvaluator::Eval(syntax_asdl::arith_expr_t*) _gen/bin/oils_for_unix.mycpp.cc:42925
    #3 0x5640c143310f in sh_expr_eval::ArithEvaluator::EvalToBigInt(syntax_asdl::arith_expr_t*) _gen/bin/oils_for_unix.mycpp.cc:42807
    #4 0x5640c146ae7a in word_eval::AbstractWordEvaluator::_EvalWordPart(syntax_asdl::word_part_t*, List<runtime_asdl::part_value_t*>*, int) _gen/bin/oils_for_unix.mycpp.cc:47794
    #5 0x5640c146c4ee in word_eval::AbstractWordEvaluator::_EvalWordToParts(syntax_asdl::CompoundWord*, List<runtime_asdl::part_value_t*>*, int) _gen/bin/oils_for_unix.mycpp.cc:47890
    #6 0x5640c1476201 in word_eval::AbstractWordEvaluator::EvalWordSequence2(List<syntax_asdl::CompoundWord*>*, bool, bool) _gen/bin/oils_for_unix.mycpp.cc:48500
    #7 0x5640c13e9a78 in cmd_eval::CommandEvaluator::_DoSimple(syntax_asdl::command__Simple*, runtime_asdl::CommandStatus*) _gen/bin/oils_for_unix.mycpp.cc:37139
    #8 0x5640c13f5795 in cmd_eval::CommandEvaluator::_Dispatch(syntax_asdl::command_t*, runtime_asdl::CommandStatus*) _gen/bin/oils_for_unix.mycpp.cc:38022
    #9 0x5640c13f85be in cmd_eval::CommandEvaluator::_Execute(syntax_asdl::command_t*) _gen/bin/oils_for_unix.mycpp.cc:38302
    #10 0x5640c13fa312 in cmd_eval::CommandEvaluator::ExecuteAndCatch(syntax_asdl::command_t*, int) _gen/bin/oils_for_unix.mycpp.cc:38473
    #11 0x5640c13473f9 in main_loop::Batch(cmd_eval::CommandEvaluator*, cmd_parse::CommandParser*, ui::ErrorFormatter*, int) _gen/bin/oils_for_unix.mycpp.cc:24883
    #12 0x5640c12af3d6 in meta_oils::Eval::Run(runtime_asdl::cmd_value__Argv*) _gen/bin/oils_for_unix.mycpp.cc:14613
    #13 0x5640c133c640 in executor::ShellExecutor::RunBuiltinProc(vm::_Builtin*, runtime_asdl::cmd_value__Argv*) _gen/bin/oils_for_unix.mycpp.cc:24100
    #14 0x5640c133c1dc in executor::ShellExecutor::RunBuiltin(int, runtime_asdl::cmd_value__Argv*) _gen/bin/oils_for_unix.mycpp.cc:24080
    #15 0x5640c133d92a in executor::ShellExecutor::RunSimpleCommand(runtime_asdl::cmd_value__Argv*, runtime_asdl::CommandStatus*, int) _gen/bin/oils_for_unix.mycpp.cc:24181
    #16 0x5640c13e40b4 in cmd_eval::CommandEvaluator::_RunSimpleCommand(runtime_asdl::cmd_value_t*, runtime_asdl::CommandStatus*, int) _gen/bin/oils_for_unix.mycpp.cc:36792
    #17 0x5640c13ea593 in cmd_eval::CommandEvaluator::_DoSimple(syntax_asdl::command__Simple*, runtime_asdl::CommandStatus*) _gen/bin/oils_for_unix.mycpp.cc:37192
    #18 0x5640c13f5795 in cmd_eval::CommandEvaluator::_Dispatch(syntax_asdl::command_t*, runtime_asdl::CommandStatus*) _gen/bin/oils_for_unix.mycpp.cc:38022
    #19 0x5640c13f85be in cmd_eval::CommandEvaluator::_Execute(syntax_asdl::command_t*) _gen/bin/oils_for_unix.mycpp.cc:38302
    #20 0x5640c13f937c in cmd_eval::CommandEvaluator::_ExecuteList(List<syntax_asdl::command_t*>*) _gen/bin/oils_for_unix.mycpp.cc:38367
    #21 0x5640c13f2965 in cmd_eval::CommandEvaluator::_DoIf(syntax_asdl::command__If*) _gen/bin/oils_for_unix.mycpp.cc:37796
    #22 0x5640c13f67df in cmd_eval::CommandEvaluator::_Dispatch(syntax_asdl::command_t*, runtime_asdl::CommandStatus*) _gen/bin/oils_for_unix.mycpp.cc:38137
    #23 0x5640c13f85be in cmd_eval::CommandEvaluator::_Execute(syntax_asdl::command_t*) _gen/bin/oils_for_unix.mycpp.cc:38302
    #24 0x5640c13f937c in cmd_eval::CommandEvaluator::_ExecuteList(List<syntax_asdl::command_t*>*) _gen/bin/oils_for_unix.mycpp.cc:38367
    #25 0x5640c13f669e in cmd_eval::CommandEvaluator::_Dispatch(syntax_asdl::command_t*, runtime_asdl::CommandStatus*) _gen/bin/oils_for_unix.mycpp.cc:38121
    #26 0x5640c13f85be in cmd_eval::CommandEvaluator::_Execute(syntax_asdl::command_t*) _gen/bin/oils_for_unix.mycpp.cc:38302
    #27 0x5640c13f0338 in cmd_eval::CommandEvaluator::_DoForEach(syntax_asdl::command__ForEach*) _gen/bin/oils_for_unix.mycpp.cc:37654
    #28 0x5640c13f6a43 in cmd_eval::CommandEvaluator::_Dispatch(syntax_asdl::command_t*, runtime_asdl::CommandStatus*) _gen/bin/oils_for_unix.mycpp.cc:38157
    #29 0x5640c13f85be in cmd_eval::CommandEvaluator::_Execute(syntax_asdl::command_t*) _gen/bin/oils_for_unix.mycpp.cc:38302
    #30 0x5640c13fa312 in cmd_eval::CommandEvaluator::ExecuteAndCatch(syntax_asdl::command_t*, int) _gen/bin/oils_for_unix.mycpp.cc:38473
    #31 0x5640c13473f9 in main_loop::Batch(cmd_eval::CommandEvaluator*, cmd_parse::CommandParser*, ui::ErrorFormatter*, int) _gen/bin/oils_for_unix.mycpp.cc:24883
    #32 0x5640c150b858 in shell::Main(BigStr*, args::Reader*, Dict<BigStr*, BigStr*>*, bool, pyutil::_ResourceLoader*, py_readline::Readline*) _gen/bin/oils_for_unix.mycpp.cc:59433
    #33 0x5640c1277a73 in oils_for_unix::AppBundleMain(List<BigStr*>*) _gen/bin/oils_for_unix.mycpp.cc:10814
    #34 0x5640c1277fbf in oils_for_unix::main(List<BigStr*>*) _gen/bin/oils_for_unix.mycpp.cc:10846
    #35 0x5640c150dd97 in main _gen/bin/oils_for_unix.mycpp.cc:59458
    #36 0x7fa1e2f1e09a in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x2409a)
    #37 0x5640c1255fd9 in _start (/home/uke/oil/_bin/cxx-asan/oils-for-unix+0x13afd9)

AddressSanitizer can not provide additional info.
SUMMARY: AddressSanitizer: SEGV _gen/bin/oils_for_unix.mycpp.cc:42390 in sh_expr_eval::OldValue(value_asdl::sh_lvalue_t*, state::Mem*, optview::Exec*, syntax_asdl::loc_t*)
==17982==ABORTING