Oops, if the previous message doesn't seem to make any sense, it's because I pasted the wrong version of the function.
The first function (the one that is supposed to give an error) should look like this:
#0 0x00007ff5856cdf77 in __GI_raise (address@hidden)
at ../nptl/sysdeps/unix/sysv/linux/raise.c:56
#1 0x00007ff5856d15e8 in __GI_abort () at abort.c:90
#2 0x00007ff585cd56e5 in __gnu_cxx::__verbose_terminate_handler() ()
from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#3 0x00007ff585cd3856 in ?? () from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#4 0x00007ff585cd3883 in std::terminate() () from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#5 0x00007ff585cd435f in __cxa_pure_virtual () from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#6 0x00000000004c91c1 in StateIndicator::function_name (address@hidden)
#7 0x00000000005074ac in Workspace::is_called (this=<optimised out>, funname=...)
#8 0x000000000047422a in Nabla::open_function (this=0x7fff48c04460) at Nabla.cc:433
#9 0x0000000000474442 in Nabla::open_new_function (this=0x7fff48c04460) at Nabla.cc:498
#10 0x0000000000474fbc in Nabla::start (address@hidden) at Nabla.cc:170
#11 0x00000000004757c4 in Nabla::edit (address@hidden) at Nabla.cc:69
#12 0x0000000000475d98 in Nabla::edit_function (cmd=...) at Nabla.cc:39
#13 0x0000000000457a34 in Command::process_line (line=...) at Command.cc:100
#14 0x0000000000458e3d in Command::process_line () at Command.cc:60
#15 0x00000000005066d5 in Workspace::immediate_execution (address@hidden,
exit_on_error=false) at Workspace.cc:140
#16 0x0000000000433164 in main (argc=1, _argv=<optimised out>) at main.cc:1042