Custom Query (146 matches)
Results (16 - 18 of 146)
Ticket | Owner | Reporter | Resolution | Summary |
---|---|---|---|---|
#27 | fixed | Thunks are not generated for polymorphic-to-monomorphic function casts. | ||
Description |
Thunks are not generated for polymorphic-to-monomorphic function casts, e.g. forall(otype T) T f(T); void g() { (int (*)(int))f; // casts, doesn't convert int (*h)(int) = f; // casts incorrectly, doesn't convert either } Aaron: I suspect this needs to be fixed with a change to the GenPoly::box pass There is a bug there, but it exposes deeper issues in the resolution pass; essentially, cfa-cc seems to have no concept of a compiler-generated implicit conversion (it punts to GCC whenever one is needed that exists in C), and it doesn't keep the right information in the correct places for an easy fix for this bug. I'd suggest resolving this one WONTFIX. |
|||
#29 | fixed | sizeof(foo) does not work, where foo is a variable of polymorphic type. | ||
Description |
sizeof(foo) does not work, where foo is a variable of polymorphic type. Uses sizeof(void*) instead, since foo is represented as one. forall(otype T) void print_sizealign(T dummy) { printf("size:%lu, align:%lu\n", sizeof(T), __alignof(T)); // correct printf("size:%lu, align:%lu\n", sizeof(dummy), __alignof(dummy)); // fails (unless T has same size/align as void*) } |
|||
#31 | fixed | Glen's new prelude | ||
Description |
Incorporate Glen's new prelude, problem with extension of restrict at non-pointer qualifier |