diff --git a/test_regress/Makefile b/test_regress/Makefile index 78642a43c..55f572b68 100644 --- a/test_regress/Makefile +++ b/test_regress/Makefile @@ -73,6 +73,12 @@ random_forever: echo ; \ done +####################################################################### +# Informational - used by some tests + +print-cxx-version: + $(CXX) --version + ###################################################################### maintainer-copy:: clean mostlyclean distclean maintainer-clean:: diff --git a/test_regress/driver.pl b/test_regress/driver.pl index 8ba9533ad..820838d63 100755 --- a/test_regress/driver.pl +++ b/test_regress/driver.pl @@ -1506,6 +1506,12 @@ sub _vcd_read { return $data; } +our $_Cxx_Version; +sub cxx_version { + $_Cxx_Version ||= `make -f Makefile print-cxx-version`; + return $_Cxx_Version; +} + sub file_grep_not { my $self = (ref $_[0]? shift : $Self); my $filename = shift; diff --git a/test_regress/t/t_sys_sformat.v b/test_regress/t/t_sys_sformat.v index 29ea527b0..7958425c3 100644 --- a/test_regress/t/t_sys_sformat.v +++ b/test_regress/t/t_sys_sformat.v @@ -56,11 +56,11 @@ module t; if (str2 !== "lib=t") $stop; str3 = $sformatf("u=%u", {"a","b","c","d"}); // Value selected so is printable -`ifdef TEST_VERBOSE $display("chku %0x %s",str3,str3); `endif +`ifdef TEST_VERBOSE $display("chku %s %s",str3,str3); `endif if (str3 !== "u=dcba") $stop; str3 = $sformatf("v=%v", {"a","b","c","d"}); // Value selected so is printable -`ifdef TEST_VERBOSE $display("chkv %0x %s",str3,str3); `endif +`ifdef TEST_VERBOSE $display("chkv %s %s",str3,str3); `endif $sformat(ochar,"%s","c"); if (ochar != "c") $stop; diff --git a/test_regress/t/t_sys_sformat_noopt.pl b/test_regress/t/t_sys_sformat_noopt.pl index d069563a7..1d8758351 100755 --- a/test_regress/t/t_sys_sformat_noopt.pl +++ b/test_regress/t/t_sys_sformat_noopt.pl @@ -14,9 +14,14 @@ compile ( verilator_flags2 => ["-O0"], ); -execute ( - check_finished=>1, - ); +if ($Self->cxx_version =~ /clang version 3.8/) { + $Self->skip("Known clang bug"); + #Here: if (VL_UNLIKELY(VL_NEQ_W(12, __Vtemp1, vlSymsp->TOP__t.__PVT__str))) +} else{ + execute ( + check_finished=>1, + ); +} ok(1); 1;