re PR d/90661 (ICE in AlignDeclaration::syntaxCopy, at d/dmd/attrib.c:670)
PR d/90661 d/dmd: Merge upstream dmd c74e624c9 Fixes segmentation fault in AlignDeclaration::syntaxCopy. Reviewed-on: https://github.com/dlang/dmd/pull/10001 From-SVN: r272341
This commit is contained in:
parent
347f5c885f
commit
22682e5b5f
@ -1,4 +1,4 @@
|
||||
78dc311524341a76008b341ff6427e5a16e285db
|
||||
c74e624c9a0a9e7e39f96b2f005f86e123df56c9
|
||||
|
||||
The first line of this file holds the git revision number of the last
|
||||
merge done from the dlang/dmd repository.
|
||||
|
@ -667,7 +667,8 @@ Dsymbol *AlignDeclaration::syntaxCopy(Dsymbol *s)
|
||||
{
|
||||
assert(!s);
|
||||
return new AlignDeclaration(loc,
|
||||
ealign->syntaxCopy(), Dsymbol::arraySyntaxCopy(decl));
|
||||
ealign ? ealign->syntaxCopy() : NULL,
|
||||
Dsymbol::arraySyntaxCopy(decl));
|
||||
}
|
||||
|
||||
Scope *AlignDeclaration::newScope(Scope *sc)
|
||||
|
@ -26,3 +26,16 @@ enum payloadOffset = C2.bytes.offsetof;
|
||||
static assert(C2.int1.offsetof == payloadOffset + 8);
|
||||
static assert(C2.alignof == size_t.sizeof);
|
||||
static assert(__traits(classInstanceSize, C2) == payloadOffset + 12);
|
||||
|
||||
|
||||
/***************************************************/
|
||||
// https://issues.dlang.org/show_bug.cgi?id=19914
|
||||
// https://issues.dlang.org/show_bug.cgi?id=19915
|
||||
|
||||
class TemplatedClass(T)
|
||||
{
|
||||
align T field;
|
||||
}
|
||||
|
||||
mixin TemplatedClass!(string);
|
||||
alias TCint = TemplatedClass!(int);
|
||||
|
10
gcc/testsuite/gdc.test/fail_compilation/fail19914.d
Normal file
10
gcc/testsuite/gdc.test/fail_compilation/fail19914.d
Normal file
@ -0,0 +1,10 @@
|
||||
// PERMUTE_ARGS:
|
||||
/*
|
||||
TEST_OUTPUT:
|
||||
---
|
||||
fail_compilation/fail19914.d(9): Error: undefined identifier `c` in module `fail19914`
|
||||
fail_compilation/fail19914.d(10): Error: mixin `fail19914.a!string` error instantiating
|
||||
---
|
||||
*/
|
||||
class a(b) { align.c d; }
|
||||
mixin a!(string);
|
10
gcc/testsuite/gdc.test/fail_compilation/fail19915.d
Normal file
10
gcc/testsuite/gdc.test/fail_compilation/fail19915.d
Normal file
@ -0,0 +1,10 @@
|
||||
// PERMUTE_ARGS:
|
||||
/*
|
||||
TEST_OUTPUT:
|
||||
---
|
||||
fail_compilation/fail19915.d(9): Error: undefined identifier `c` in module `fail19915`
|
||||
fail_compilation/fail19915.d(10): Error: template instance `fail19915.a!int` error instantiating
|
||||
---
|
||||
*/
|
||||
class a (b) { align.c d; }
|
||||
alias a!(int) e;
|
Loading…
Reference in New Issue
Block a user