View Issue Details

IDProjectCategoryView StatusLast Update
0035542FPCDocumentationpublic2019-05-12 10:09
ReporterGraeme GeldenhuysAssigned ToMichael Van Canneyt 
PrioritynormalSeverityminorReproducibilityalways
Status resolvedResolutionfixed 
Platformx86_64OSFreeBSDOS Version10.3
Product Version3.2.0Product Build 
Target VersionFixed in Version 
Summary0035542: fpdoc missing FPC_LITTLE_ENDIAN compiler define
DescriptionHi,

https://www.freepascal.org/docs-html/rtl/sysutils/longrec.html

I'm referring to the documentation shown in the URL above. As far as I
know the fpdoc is sensitive to which platform it is running on (unless
explicitly told otherwise), and will generate documentation according to
that platform. Please correct me if I am wrong, but this was my personal
experience with fpdoc.

Anyway, as far as I know the FPC documentation is normally generated on
a Linux system with 64-bit Intel type CPU.

If so, that means the documentation shown above has the Hi, Lo fields in
the wrong order. Showing Big Endian instead of Little Endian (what Intel
desktop CPU's are).


Based on the real source code found in sysutilh.inc, this is how the
record is actually defined:


   LongRec = packed record
      case Integer of
{$ifdef FPC_LITTLE_ENDIAN}
        0 : (Lo,Hi : Word);
{$else FPC_LITTLE_ENDIAN}
        0 : (Hi,Lo : Word);
{$endif FPC_LITTLE_ENDIAN}
        1 : (Bytes : Array[0..3] of Byte);
   end;

It seems that when generating documentation the FPC_LITTLE_ENDIAN
compiler define is not specified, thus fpdoc defaults to using and
showing the Big Endian source code.


On a side note:
  It might also be a good idea to indicate inside the documentation
  which system was used to generate the docs. Maybe the footer or some
  "About -> Notations" page. As far as I know fpdoc can't show
  documentation for multiple platforms together (like the source code
  shown above).
TagsNo tags attached.
Fixed in Revision1605
FPCOldBugId
FPCTarget-
Attached Files

Activities

Michael Van Canneyt

2019-05-12 10:09

administrator   ~0116145

Added define, added also remark that the shown declaration may differ from the actual declaration for the platform you're working on.

Issue History

Date Modified Username Field Change
2019-05-08 14:39 Graeme Geldenhuys New Issue
2019-05-08 14:39 Graeme Geldenhuys Status new => assigned
2019-05-08 14:39 Graeme Geldenhuys Assigned To => Michael Van Canneyt
2019-05-12 10:09 Michael Van Canneyt Status assigned => resolved
2019-05-12 10:09 Michael Van Canneyt Resolution open => fixed
2019-05-12 10:09 Michael Van Canneyt Fixed in Revision => 1605
2019-05-12 10:09 Michael Van Canneyt FPCTarget => -
2019-05-12 10:09 Michael Van Canneyt Note Added: 0116145