This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Marking a builtin function as `noreturn'.


> 
> Hi Andrew,
> 
> The problem with calling __builtin_trap directly comes when several 
> traps are called in the same function. For example, if a function 
> contains several identical assertions on different code paths, then gcc 
> will generate a single copy of the assertion, and branch to that copy 
> from each of the original assertion sites. If an assertion is hit, it 
> becomes impossible to tell which of the original source assertions this 
> relates to. Note that this is an embedded processor, so the source line, 
> error description and so on can't be embedded in the assertion, since 
> that consumes too much space; all an assertion does is test the 
> condition, and possibly call the HALT.

Well the easy way around this is have a function which just does halt but
sends the line number before halting.  I don't see anyway around this really
except taking up more space.

-- Pinski


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]