diff --git a/ivette/src/frama-c/eva/Values.tsx b/ivette/src/frama-c/eva/Values.tsx index b2293d91b2acac1dd7383f994e477253404d78a4..3392392807d5f4db1910b713b4b5884060992f12 100644 --- a/ivette/src/frama-c/eva/Values.tsx +++ b/ivette/src/frama-c/eva/Values.tsx @@ -8,6 +8,7 @@ import * as Dome from 'dome'; import { classes } from 'dome/misc/utils'; import { VariableSizeList } from 'react-window'; import { Vfill, Hpack, Filler } from 'dome/layout/boxes'; +import { Icon } from 'dome/controls/icons'; import { Label, Code } from 'dome/controls/labels'; import { IconButton } from 'dome/controls/buttons'; import { ButtonGroup, Button } from 'dome/frame/toolbars'; @@ -232,6 +233,7 @@ function TableCell(props: TableCellProps) { probe.stmt, callstack, ); + const { alarms = [] } = domain; const { vstate: s, effects, condition } = probe; const text = valueAt(domain, s) ?? ''; const diff = diffAfter(domain, effects, s); @@ -239,11 +241,16 @@ function TableCell(props: TableCellProps) { const diffB = diffElse(domain, condition, s); const { cols, rows } = sizeof(text); contents = ( - <SizedArea cols={cols} rows={rows}> - <span className={`eva-state-${s}`}> - <Diff text={text} diff={diff} diffA={diffA} diffB={diffB} /> - </span> - </SizedArea> + <> + {alarms.length > 0 && ( + <Icon className="eva-cell-alarms" size={10} id='WARNING' /> + )} + <SizedArea cols={cols} rows={rows}> + <span className={`eva-state-${s}`}> + <Diff text={text} diff={diff} diffA={diffA} diffB={diffB} /> + </span> + </SizedArea> + </> ); } break; diff --git a/ivette/src/frama-c/eva/style.css b/ivette/src/frama-c/eva/style.css index dfa4086596e359cf79979a119d09131fe637f359..81387ed81fbf6db9b2163b2ae65ccc52514ea6ca 100644 --- a/ivette/src/frama-c/eva/style.css +++ b/ivette/src/frama-c/eva/style.css @@ -144,6 +144,14 @@ .eva-state-Then .eva-diff { background: green; } .eva-state-Else .eva-diff { background: orange; } +.eva-cell-alarms { + fill: red; + position: absolute; + top: -1px; + right: 3px; + z-index: 1; +} + /* -------------------------------------------------------------------------- */ /* --- Table Rows Background --- */ /* -------------------------------------------------------------------------- */