Open Bug 719036 Opened 10 years ago Updated 9 years ago

IPDL-generated headers cannot be included together with nsObjCExceptions.h

Categories

(Core :: IPC, defect)

All
macOS
defect
Not set
normal

Tracking

()

People

(Reporter: ajuma, Unassigned)

Details

As noted in Bug 568513, Comment 7, IPDL-generated headers include (via a chain of inclusions) exception_defines.h. Since we compile with -fno-exceptions, exceptions_defines.h defines |try| and |catch| to |if (true)| and |if (false)|. However, we also compile with -fobjc-exceptions, so when we subsequently include nsObjCExceptions.h, the definitions of |try| and |catch| from exceptions_defines.h change the Objective-C |@try|/|@catch| statements in nsObjCExceptions.h to |@if| statements.

When compiling for 32-bit OS X, we get "error: stray ‘@’ in program" when |@if| is reached. When compiling for 64-bit OS X, we don't get errors, but |@try| and |@catch| are nevertheless replaced with |@if|, which isn't the expected behaviour.

Note that we can't simply include nsObjCExceptions.h before including IPDL-generated headers to work around this issue, since this produces the error "You_must_include_basictypes.h_before_prtypes.h!".
You need to log in before you can comment on or make changes to this bug.