From 4589821df37f5b324a6465d76f7d60b8bfb376ce Mon Sep 17 00:00:00 2001 From: Holger Vogt Date: Sun, 1 Dec 2024 15:55:59 +0100 Subject: [PATCH] Revise check for '.probe alli' and event nodes: Bail out, don't run any sim, don't change variable 'auto_bridge'. --- src/frontend/inpcom.c | 2 -- src/xspice/evt/evtcheck_nodes.c | 13 ++++++++----- 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/src/frontend/inpcom.c b/src/frontend/inpcom.c index a387cd957..96c4f35f7 100644 --- a/src/frontend/inpcom.c +++ b/src/frontend/inpcom.c @@ -8697,9 +8697,7 @@ static void inp_check_syntax(struct card *deck) for (card = deck; card; card = card->nextcard) { char* cut_line = card->line; if (ciprefix(".probe", cut_line) && search_plain_identifier(cut_line, "alli")) { - int i = 0; bool bi = TRUE; - cp_vset("auto_bridge", CP_NUM, &i); cp_vset("probe_alli_given", CP_BOOL, &bi); break; } diff --git a/src/xspice/evt/evtcheck_nodes.c b/src/xspice/evt/evtcheck_nodes.c index d62f00ed6..b89ecc1ed 100644 --- a/src/xspice/evt/evtcheck_nodes.c +++ b/src/xspice/evt/evtcheck_nodes.c @@ -700,6 +700,14 @@ bool Evtcheck_nodes( * an event node. Failure is fatal. */ + if (ckt->evt->info.node_list && cp_getvar("probe_alli_given", CP_BOOL, NULL, 0)) { + fprintf(stderr, + "\nError: Dot command '.probe alli' and " + "digital nodes are not compatible.\n"); + fprintf(stderr, " Simulation will fail!\n\n"); + controlled_exit(EXIT_FAILURE); + } + for (event_node = ckt->evt->info.node_list; event_node; event_node = event_node->next) { @@ -707,13 +715,8 @@ bool Evtcheck_nodes( analog_node; analog_node = analog_node->next) { int nl; - if (strcmp(event_node->name, analog_node->name) == 0) { if (show == AB_OFF) { - if (cp_getvar("probe_alli_given", CP_BOOL, NULL, 0)) - fprintf(stderr, - "\nDot command '.probe alli' and " - "digital nodes are not compatible.\n"); FREE(errMsg); errMsg = tprintf("Auto bridging is switched off " "but node %s is mixed-type.\n",