Project

General

Profile

Actions

Bug #1092

closed

Unit test failures on Debian i386 with GCC 13

Added by Marco Eichelberg almost 2 years ago. Updated about 1 year ago.

Status:
Closed
Priority:
Normal
Category:
Library and Apps
Target version:
Start date:
2023-11-27
Due date:
% Done:

100%

Estimated time:
Module:
ofstd
Operating System:
Compiler:

Description

The Debian team has changed the default behavior for ieee double float (excess precision=standard) for the i386 platform when using GCC 13.
This leads to a number of failures of DCMTK's unit tests:
  • ofstd_OFTime
  • ofstd_variant
  • dcmdata_decimalString_1
  • dcmdata_decimalString_2
  • dcmdata_decimalString_3
  • dcmdata_floatingPointDouble
  • dcmfg_ct_acquisition_type

Some examples of failed test cases:

  • FAILED test 'dcmdata_decimalString_1' at ./dcmdata/tests/tvrds.cc:41: (-4.99) should equal (-4.99)
  • FAILED test 'dcmdata_decimalString_1' at ./dcmdata/tests/tvrds.cc:42: (500.005) should equal (500.005)
  • FAILED test 'dcmdata_decimalString_1' at ./dcmdata/tests/tvrds.cc:43: (0.666) should equal (0.666)

All test failures essentially boil down to this: OFStandard::atof("-4.99") != -4.99, for given pairs of string and double.
It is most likely related to the changed handling of floating point numbers caused by -fexcess-precision=standard, which is only supported for C++ code starting with GCC 13.

Actions #1

Updated by Jörg Riesmeier about 1 year ago

  • Status changed from New to Closed
  • Assignee set to Marco Eichelberg
  • % Done changed from 0 to 100
  • Module set to ofstd

Closed with commit ecbf61cb7.

Actions

Also available in: Atom PDF