[tor-bugs] #27185 [Core Tor]: test/test.c and lround() prototype

Tor Bug Tracker & Wiki blackhole at torproject.org
Fri Aug 17 10:55:41 UTC 2018


#27185: test/test.c and lround() prototype
--------------------------+------------------------------
     Reporter:  gvanem    |      Owner:  (none)
         Type:  defect    |     Status:  new
     Priority:  Medium    |  Milestone:
    Component:  Core Tor  |    Version:  Tor: 0.3.4.6-rc
     Severity:  Minor     |   Keywords:  clang-cl warning
Actual Points:            |  Parent ID:
       Points:            |   Reviewer:
      Sponsor:            |
--------------------------+------------------------------
 First off, I have to express my frustration with this Trac-system. Clumsy
 as hell; the Markdown support is a joke. I'd wish you'd moved to Github or
 Gitlab.

 Okay. To the issue. Compiling test/test.c using MSVC-2017 or clang-cl,
 spits out this warning:
 {{{
 test.c(42,10):  warning: 'lround' redeclared without 'dllimport'
 attribute: previous 'dllimport' ignored [-Winconsistent-dllimport]
 long int lround(double x);
 }}}

 From MSVC:
 {{{
 test.c(42): warning C4273: 'lround': inconsistent dll linkage
 f:\ProgramFiler-x86\WindowsKits\Include\10.0.16299.0\ucrt\corecrt_math.h(520):
 note: see previous definition of 'lround'
 }}}

 For Windows, it's already prototypes as (after C-preprocessing):
 {{{
 __declspec (dllimport)
   long long __cdecl llround (double _X);
 }}}

 Why not use `tor_lround()` instead?
 Same goes for `fabs()` I guess, but this function is **not** marked with
 `dllimport`!? Seems to be an intrinsic for clang-cl + MSVC.

--
Ticket URL: <https://trac.torproject.org/projects/tor/ticket/27185>
Tor Bug Tracker & Wiki <https://trac.torproject.org/>
The Tor Project: anonymity online


More information about the tor-bugs mailing list