[Dwarf-Discuss] C++14 and C++03 (vs C++98)
Wed Oct 8 12:58:39 GMT 2014
On Wed, 2014-10-08 at 08:13 -0400, Jason Merrill wrote:
> Actually, it's not clear to me why we need multiple standard levels at
> all. What differences are there that aren't directly expressed by new
> TAGs and such?
It is mainly for consumers that allow users to interact with the program
described through DWARF. For example a debugger might want to know which
expressions are valid (e.g. is restrict a keyword or not). This matters
for example when someone copy/pastes some expression in the source code
from the program to be evaluated at at a certain breakpoint.
Another reason is indeed for things that aren't currently expressed in
DWARF, but could be derived from other properties. The one that comes to
mind wrt C++14 vs C++11 from our recent discussions is the concept of
trivially copyable types (earlier c++ versions treats cv-qualified types
differently from C++14, which excludes volatile cv-qualified types in
certain cases). In that specific case we could of course come up with a
proposal to express that property with a DWARF attribute that is
language (version) independent, but I don't know if we can identify all
such properties for C++14 in time before DWARFv5 is finalized and
properly evaluate it in implementations to make the need for consumers
to distinguish between different versions of the source language moot.
More information about the Dwarf-discuss