While debugging locations I noticed the semi_embedded_vec template in line-map.h doesn't declare a copy ctor or copy assignment, but is being copied in a couple of places in the C++ parser (via gcc_rich_location). It gets away with it most likely because it never grows beyond the embedded buffer. The attached patch defines the copy ctor and also copy assignment and adds the corresponding move functions. Tested on x86_64-linux. Martin