You may have found a compiler bug, although I seem to remember that in C++98 the requirements for initialising POD-structs were not as clearly described.
According to C++03, the expression Line()
must result in a value-initialised Line object, which in this case means that all members must be zero-initialised (as all members are scalars).
Note that eventual padding between the members does not have to be set to any definite value, so that can cause a false-positive when you look at the Line object as a blob of memory.
The work-around is to provide a default constructor for Line
that explicitly initialises all members.