[sixgill] Handle throw and nothrow expressions

NEW
Unassigned

Status

()

3 years ago
3 years ago

People

(Reporter: sfink, Unassigned)

Tracking

(Blocks: 1 bug)

Firefox Tracking Flags

(Not tracked)

Details

Attachments

(1 attachment)

(Reporter)

Description

3 years ago
At least with gcc 4.9.3, sixgill can't even survive the configure process because it compiles headers that include __nothrow and inline header code with throw statements.
(Reporter)

Comment 1

3 years ago
Created attachment 8717207 [details] [diff] [review]
"Handle" throw()

This is a cheap hack to make the analysis do something vaguely sane rather than bomb out. It ignores __nothrow and treats throw as a (void) statement. It's enough to keep the analysis from throwing out a ton of functions, including several from gcc header files.

This is mostly helpful in my attempt to reduce the number of functions that are discarded during analysis, since I have discovered some important ones are getting missed. (Nothing that would produce false negatives for rooting analysis, AFAIK.)

It might be slightly better to treat it as a 'return', so that the analysis knows that anything after it is unreachable, but it simply doesn't matter for my purposes.
You need to log in before you can comment on or make changes to this bug.