mirror of
https://github.com/dlang/phobos.git
synced 2025-04-28 06:00:35 +03:00
Fix tests that fail on version (BigEndian)
This commit is contained in:
parent
9f49777977
commit
12854834f6
3 changed files with 33 additions and 11 deletions
|
@ -408,11 +408,17 @@ class OutBuffer
|
||||||
{
|
{
|
||||||
OutBuffer buf = new OutBuffer();
|
OutBuffer buf = new OutBuffer();
|
||||||
"hello"w.copy(buf);
|
"hello"w.copy(buf);
|
||||||
assert(buf.toBytes() == "h\x00e\x00l\x00l\x00o\x00");
|
version (LittleEndian)
|
||||||
|
assert(buf.toBytes() == "h\x00e\x00l\x00l\x00o\x00");
|
||||||
|
version (BigEndian)
|
||||||
|
assert(buf.toBytes() == "\x00h\x00e\x00l\x00l\x00o");
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
OutBuffer buf = new OutBuffer();
|
OutBuffer buf = new OutBuffer();
|
||||||
"hello"d.copy(buf);
|
"hello"d.copy(buf);
|
||||||
assert(buf.toBytes() == "h\x00\x00\x00e\x00\x00\x00l\x00\x00\x00l\x00\x00\x00o\x00\x00\x00");
|
version (LittleEndian)
|
||||||
|
assert(buf.toBytes() == "h\x00\x00\x00e\x00\x00\x00l\x00\x00\x00l\x00\x00\x00o\x00\x00\x00");
|
||||||
|
version (BigEndian)
|
||||||
|
assert(buf.toBytes() == "\x00\x00\x00h\x00\x00\x00e\x00\x00\x00l\x00\x00\x00l\x00\x00\x00o");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
22
std/uni.d
22
std/uni.d
|
@ -762,6 +762,8 @@ version (X86)
|
||||||
enum hasUnalignedReads = true;
|
enum hasUnalignedReads = true;
|
||||||
else version (X86_64)
|
else version (X86_64)
|
||||||
enum hasUnalignedReads = true;
|
enum hasUnalignedReads = true;
|
||||||
|
else version (SystemZ)
|
||||||
|
enum hasUnalignedReads = true;
|
||||||
else
|
else
|
||||||
enum hasUnalignedReads = false; // better be safe then sorry
|
enum hasUnalignedReads = false; // better be safe then sorry
|
||||||
|
|
||||||
|
@ -1237,8 +1239,13 @@ pure nothrow:
|
||||||
|
|
||||||
T opIndex(size_t idx) inout
|
T opIndex(size_t idx) inout
|
||||||
{
|
{
|
||||||
return __ctfe ? simpleIndex(idx) :
|
T ret;
|
||||||
cast(inout(T))(cast(U*) origin)[idx];
|
version (LittleEndian)
|
||||||
|
ret = __ctfe ? simpleIndex(idx) :
|
||||||
|
cast(inout(T))(cast(U*) origin)[idx];
|
||||||
|
else
|
||||||
|
ret = simpleIndex(idx);
|
||||||
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
static if (isBitPacked!T) // lack of user-defined implicit conversion
|
static if (isBitPacked!T) // lack of user-defined implicit conversion
|
||||||
|
@ -1251,10 +1258,15 @@ pure nothrow:
|
||||||
|
|
||||||
void opIndexAssign(TypeOfBitPacked!T val, size_t idx)
|
void opIndexAssign(TypeOfBitPacked!T val, size_t idx)
|
||||||
{
|
{
|
||||||
if (__ctfe)
|
version (LittleEndian)
|
||||||
simpleWrite(val, idx);
|
{
|
||||||
|
if (__ctfe)
|
||||||
|
simpleWrite(val, idx);
|
||||||
|
else
|
||||||
|
(cast(U*) origin)[idx] = cast(U) val;
|
||||||
|
}
|
||||||
else
|
else
|
||||||
(cast(U*) origin)[idx] = cast(U) val;
|
simpleWrite(val, idx);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
|
12
std/xml.d
12
std/xml.d
|
@ -2201,8 +2201,10 @@ private
|
||||||
mixin Check!("Chars");
|
mixin Check!("Chars");
|
||||||
|
|
||||||
dchar c;
|
dchar c;
|
||||||
int n = -1;
|
ptrdiff_t n = -1;
|
||||||
foreach (int i,dchar d; s)
|
// 'i' must not be smaller than size_t because size_t is used internally in
|
||||||
|
// aApply.d and it will be cast e.g to (int *) which fails on BigEndian targets.
|
||||||
|
foreach (size_t i, dchar d; s)
|
||||||
{
|
{
|
||||||
if (!isChar(d))
|
if (!isChar(d))
|
||||||
{
|
{
|
||||||
|
@ -2238,8 +2240,10 @@ private
|
||||||
mixin Check!("Name");
|
mixin Check!("Name");
|
||||||
|
|
||||||
if (s.length == 0) fail();
|
if (s.length == 0) fail();
|
||||||
int n;
|
ptrdiff_t n;
|
||||||
foreach (int i,dchar c;s)
|
// 'i' must not be smaller than size_t because size_t is used internally in
|
||||||
|
// aApply.d and it will be cast e.g to (int *) which fails on BigEndian targets.
|
||||||
|
foreach (size_t i, dchar c; s)
|
||||||
{
|
{
|
||||||
if (c == '_' || c == ':' || isLetter(c)) continue;
|
if (c == '_' || c == ':' || isLetter(c)) continue;
|
||||||
if (i == 0) fail();
|
if (i == 0) fail();
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue