Mike Stump wrote:
Let me try again. The standard way to add a new qualifier in g++, is
to add it in an attribute, please do that.
OK, I agree. Let's say that a method will be declared as
int method() throw(std::exception) __attribute__((static_exc_check));
(this is intended to have the same meaning of
int method() _throw(std::exception);
as explained before).
With respect to this:
> The point here is that, in order to do this, you need
> interprocedural analysis.
You've not yet grasped they are isomorphic forms. If the above is
true, then then below is wrong. If the below is not wrong, then the
above must be wrong. Your pick.
> If you have qualifiers as the one I describe, you can perform the
> check by merely using the prototypes...
This check using prototypes is not more interprocedural than
type-checking is... If your definition of interprocedural analysis
includes type-checking, OK, I agree... In order to type check a method
m, you need the prototypes of the methods m calls to. In addition,
when you check the code of a method m, you compare the return type of
the code with the return type in the prototype. It works the same way
for the static check of exception specifications...