[cfe-dev] More extensive unused variable checks

Daniel B Mosesson dmosess1 at binghamton.edu
Tue Apr 16 11:32:19 PDT 2013


Not really. Const does not enforce no I/O and no modification of
pointer targets. Here is an example:

#include<iostream>
struct test1
{
	int* a;
	test1(int* b){a = b;}
	void mod() const
	{*a=5;}
};
int main()
{
	int q = 2;
	test1 b(&q);
	b.mod();
	std::cout<<q<<std::endl;
	return 0;
}

That is why I believe that attributes will probably be necessary to
solve this issue, though if there is a better way, I would be all for
it.

On 4/16/13, Sean Silva <silvas at purdue.edu> wrote:
> On Tue, Apr 16, 2013 at 9:43 AM, Daniel B Mosesson
> <dmosess1 at binghamton.edu>wrote:
>
>> I was thinking about an set of attributes for STL containers (just to
>> make this manageable) that would identify the operations for the
>> container classes as either read or write (or both, as in the case of
>> indexers).
>> Is there a reason not to use attributes for this purpose?
>
>
> What about member functions being marked as `const`? Would that be
> sufficient indication?
>
> -- Sean Silva
>



More information about the cfe-dev mailing list