[omniORB] Problem with "// never return" functions and static code analysis

Martin Baschnegger 0xCDCDCDCD at gmx.at
Sat Jul 24 16:15:46 BST 2010


On 23.07.2010 19:41, Duncan Grisby wrote:
> On Fri, 2010-07-09 at 18:18 +0200, Martin B. wrote:
>
>> One of the warnings it's got is that it'll tell you when you are
>> dereferencing a NULL pointer. The problem is now that it will generate
>> this warning all over the omniORB headers, e.g:
>> ***
>> [4.1.2, stringtypes.h, ln 219]
>>     inline char&  operator[] (_CORBA_ULong index_) {
>>       if (!_data) {
>>         _CORBA_bound_check_error();	// never return
>>       }
>>       return _data[index_];
>>     }
>> ***
>>
>> This could be solved by tagging all "// never return" functions with
>> __declspec(noreturn)
>> for VS Builds. (Obviously via some macro.)
>
> Does the declaration go on the function prototype or on the use of the
> function?  If it goes on the prototype, that's probably ok. I'd rather
> not uglify all the uses with such things.
>
> In principle, I'll accept a patch as long as it doesn't make the code
> much less readable, or create an ongoing maintenance headache.
>

Thanks Duncan. The declaration goes on the prototype. I'll try to get a 
patch together!

cheers,
Martin



More information about the omniORB-list mailing list