/usr/lib/gcc/x86_64-linux-gnu/5/include/d/rt/typeinfo/ti_double.d is in libphobos-5-dev 5.5.0-12ubuntu1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 | /**
* TypeInfo support code.
*
* Copyright: Copyright Digital Mars 2004 - 2009.
* License: $(WEB www.boost.org/LICENSE_1_0.txt, Boost License 1.0).
* Authors: Walter Bright
*/
/* Copyright Digital Mars 2004 - 2009.
* Distributed under the Boost Software License, Version 1.0.
* (See accompanying file LICENSE or copy at
* http://www.boost.org/LICENSE_1_0.txt)
*/
module rt.typeinfo.ti_double;
private import rt.util.typeinfo;
// double
class TypeInfo_d : TypeInfo
{
pure:
nothrow:
@safe:
alias F = double;
override string toString() const { return F.stringof; }
override size_t getHash(in void* p) const @trusted
{
return Floating!F.hashOf(*cast(F*)p);
}
override bool equals(in void* p1, in void* p2) const @trusted
{
return Floating!F.equals(*cast(F*)p1, *cast(F*)p2);
}
override int compare(in void* p1, in void* p2) const @trusted
{
return Floating!F.compare(*cast(F*)p1, *cast(F*)p2);
}
override @property size_t tsize() const
{
return F.sizeof;
}
override void swap(void *p1, void *p2) const @trusted
{
F t = *cast(F*)p1;
*cast(F*)p1 = *cast(F*)p2;
*cast(F*)p2 = t;
}
override const(void)[] init() const @trusted
{
static immutable F r;
return (&r)[0 .. 1];
}
override @property size_t talign() const
{
return F.alignof;
}
version (Windows)
{
}
else version (X86_64)
{
// 2 means arg to function is passed in XMM registers
override @property uint flags() const { return 2; }
}
}
|