mirror of
https://github.com/mirror/tinycc.git
synced 2024-12-26 03:50:07 +08:00
opt: Don't emit inline functions from dead code
Inside dead code don't regard inline functions as being referenced.
This commit is contained in:
parent
ce55d03eef
commit
ad8e14b740
2
tccgen.c
2
tccgen.c
@ -4594,7 +4594,7 @@ ST_FUNC void unary(void)
|
||||
effect to generate code for it at the end of the
|
||||
compilation unit. Inline function as always
|
||||
generated in the text section. */
|
||||
if (!s->c)
|
||||
if (!s->c && !nocode_wanted)
|
||||
put_extern_sym(s, text_section, 0, 0);
|
||||
r = VT_SYM | VT_CONST;
|
||||
} else {
|
||||
|
@ -1170,6 +1170,11 @@ void bool_test()
|
||||
extern int undefined_function(void);
|
||||
extern int defined_function(void);
|
||||
|
||||
static inline void refer_to_undefined(void)
|
||||
{
|
||||
undefined_function();
|
||||
}
|
||||
|
||||
void optimize_out(void)
|
||||
{
|
||||
int i = 0 ? undefined_function() : defined_function();
|
||||
@ -1264,6 +1269,9 @@ void optimize_out(void)
|
||||
else
|
||||
undefined_function();
|
||||
|
||||
if (defined_function() && 0)
|
||||
refer_to_undefined();
|
||||
|
||||
if (1)
|
||||
return;
|
||||
printf ("oor:%d\n", undefined_function());
|
||||
|
Loading…
Reference in New Issue
Block a user