Author: stepan Date: Sun Feb 28 19:37:38 2010 New Revision: 5172 URL: http://tracker.coreboot.org/trac/coreboot/changeset/5172
Log: Add attribute((noreturn)) to romcc It doesn't do anything, but it allows the same code to be compiled with gcc and romcc.
Signed-off-by: Stefan Reinauer stepan@coresystems.de Acked-by: Ronald G. Minnich rminnich@gmail.com
Modified: trunk/util/romcc/romcc.c
Modified: trunk/util/romcc/romcc.c ============================================================================== --- trunk/util/romcc/romcc.c Sun Feb 28 19:23:00 2010 (r5171) +++ trunk/util/romcc/romcc.c Sun Feb 28 19:37:38 2010 (r5172) @@ -1083,6 +1083,7 @@ struct hash_entry *i_break; struct hash_entry *i_default; struct hash_entry *i_return; + struct hash_entry *i_noreturn; /* Additional hash entries for predefined macros */ struct hash_entry *i_defined; struct hash_entry *i___VA_ARGS__; @@ -12758,6 +12759,9 @@ } attributes |= ATTRIB_ALWAYS_INLINE; } + else if (ident == state->i_noreturn) { + // attribute((noreturn)) does nothing (yet?) + } else { error(state, 0, "Unknown attribute:%s", ident->name); } @@ -24994,6 +24998,7 @@ /* Memorize where some attribute keywords are. */ state.i_noinline = lookup(&state, "noinline", 8); state.i_always_inline = lookup(&state, "always_inline", 13); + state.i_noreturn = lookup(&state, "noreturn", 8);
/* Process the command line macros */ process_cmdline_macros(&state);