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

Duncan Grisby duncan at grisby.org
Fri Jul 23 19:41:57 BST 2010


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.

Cheers,

Duncan.

-- 
 -- Duncan Grisby         --
  -- duncan at grisby.org     --
   -- http://www.grisby.org --





More information about the omniORB-list mailing list