From 08ced1d5b414ffb51be11e3255683a0855779e9f Mon Sep 17 00:00:00 2001 From: Andy Polyakov Date: Wed, 18 Mar 2009 14:49:23 -0700 Subject: [PATCH] outcoff: BR 2685756: fix SAFESEH with an internal symbol Fix the SAFESEH directive for the specific case of a symbol internal to the program. With the optimizer enabled, it would otherwise fail unless the symbol is external. --- output/outcoff.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/output/outcoff.c b/output/outcoff.c index 16d2719f..1540c605 100644 --- a/output/outcoff.c +++ b/output/outcoff.c @@ -726,7 +726,9 @@ static int coff_directives(char *directive, char *value, int pass) else sxseg = i; } - if (pass==2) { + /* pass0 == 2 is the only time when the full set of symbols are + guaranteed to be present; it is the final output pass. */ + if (pass0 == 2) { uint32_t n; saa_rewind(syms); for (n = 0; n < nsyms; n++) { -- 2.11.4.GIT