[Issue 2920] New: recursive templates blow compiler stack
d-bugmail at puremagic.com
d-bugmail at puremagic.com
Sat May 2 08:54:59 PDT 2009
http://d.puremagic.com/issues/show_bug.cgi?id=2920
Summary: recursive templates blow compiler stack
Product: D
Version: unspecified
Platform: PC
OS/Version: All
Status: NEW
Severity: normal
Priority: P2
Component: DMD
AssignedTo: bugzilla at digitalmars.com
ReportedBy: bugzilla at digitalmars.com
// dstress template_16 infinite loop. This should generate
// a "recursive template expansion" error, but it doesn't.
template Template(int i) {
mixin Template!(i+1);
}
mixin Template!(0);
// ==============================================
// Bugs I cannot reproduce on Windows, but which fail on dstress suite
// DMD 1.043 Linux. They are all have the same root cause.
// All generate "recursive template expansion" error on Windows
// template_17_A.
template t(int i){
const int x = t!(i+1).x;
}
void main(){
int i = t!(0).x;
}
//template_29_B.
template foo(size_t i){
static if(i > 0){
const size_t bar = foo!(i-1).bar;
}else{
const size_t bar = 1;
}
}
int main(){
return foo!(size_t.max).bar;
}
//template_class_09.
template Template(int i) {
class Class : Template!(i+1).Class{
}
}
alias Template!(0).Class Class0;
--
More information about the Digitalmars-d-bugs
mailing list