https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68888
Bug ID: 68888 Summary: No Warning when converting an array of a subclass to its parent Product: gcc Version: 5.3.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: gcc-bugs at bluematt dot me Target Milestone: --- Without bringing up the deadly "warn when using arrays in function declarations" quagmire, if you are converting an array of one type to that of another due to pointer decay, there should probably at least be a huge warning. eg the following prints "1 2" to the surprise of many unthinking programmers. #include <stdio.h> class A { public: int a; }; class B : public A { public: int b; }; void go(A b[2]) { fprintf(stderr, "%d %d\n", b[0].a, b[1].a); } int main() { B bs[2]; bs[0].a = 1; bs[0].b = 2; bs[1].a = 3; bs[1].b = 4; go(bs); }