Change reserved names to True/False (not actually booleans at all) Add includes for libbsd functions And enable system extensions, to counteract disabling them and then using them https://bugs.gentoo.org/871267 https://bugs.gentoo.org/932230 https://bugs.gentoo.org/944894 --- a/configure.ac +++ b/configure.ac @@ -3,8 +3,9 @@ AC_PREREQ(2.59) AC_INIT([pcc], [1.1.0], [pcc@lists.ludd.ltu.se]) AC_CONFIG_HEADER([config.h]) +AC_USE_SYSTEM_EXTENSIONS AC_CANONICAL_TARGET abi=unknown --- a/cc/ccom/pass1.h +++ b/cc/ccom/pass1.h @@ -37,8 +37,9 @@ #include <sys/types.h> #include <stdarg.h> #include <string.h> +#include <bsd/string.h> #ifdef HAVE_STDINT_H #include <stdint.h> #endif --- a/cc/ccom/trees.c +++ b/cc/ccom/trees.c @@ -2080,9 +2080,9 @@ /* * Write out logical expressions as branches. */ static void -andorbr(NODE *p, int true, int false) +andorbr(NODE *p, int True, int False) { NODE *q; int o, lab; @@ -2123,19 +2123,19 @@ case LE: case LT: case GE: case GT: -calc: if (true < 0) { +calc: if (True < 0) { p->n_op = negrel[p->n_op - EQ]; - true = false; - false = -1; + True = False; + False = -1; } rmcops(p->n_left); rmcops(p->n_right); - fixbranch(p, true); - if (false >= 0) - branch(false); + fixbranch(p, True); + if (False >= 0) + branch(False); break; case ULE: case UGT: @@ -2147,57 +2147,57 @@ case UGE: case ULT: /* Already true/false by definition */ if (nncon(p->n_right) && p->n_right->n_lval == 0) { - if (true < 0) { + if (True < 0) { o = o == ULT ? UGE : ULT; - true = false; + True = False; } rmcops(p->n_left); ecode(p->n_left); rmcops(p->n_right); ecode(p->n_right); nfree(p); if (o == UGE) /* true */ - branch(true); + branch(True); break; } goto calc; case ANDAND: - lab = false<0 ? getlab() : false ; + lab = False<0 ? getlab() : False ; andorbr(p->n_left, -1, lab); comops(p->n_right); - andorbr(p->n_right, true, false); - if (false < 0) + andorbr(p->n_right, True, False); + if (False < 0) plabel( lab); nfree(p); break; case OROR: - lab = true<0 ? getlab() : true; + lab = True<0 ? getlab() : True; andorbr(p->n_left, lab, -1); comops(p->n_right); - andorbr(p->n_right, true, false); - if (true < 0) + andorbr(p->n_right, True, False); + if (True < 0) plabel( lab); nfree(p); break; case NOT: - andorbr(p->n_left, false, true); + andorbr(p->n_left, False, True); nfree(p); break; default: rmcops(p); - if (true >= 0) - fixbranch(p, true); - if (false >= 0) { - if (true >= 0) - branch(false); + if (True >= 0) + fixbranch(p, True); + if (False >= 0) { + if (True >= 0) + branch(False); else - fixbranch(buildtree(EQ, p, bcon(0)), false); + fixbranch(buildtree(EQ, p, bcon(0)), False); } } } --- a/cc/cxxcom/trees.c +++ b/cc/cxxcom/trees.c @@ -2021,9 +2021,9 @@ /* * Write out logical expressions as branches. */ static void -andorbr(NODE *p, int true, int false) +andorbr(NODE *p, int True, int False) { NODE *q; int o, lab; @@ -2064,19 +2064,19 @@ case LE: case LT: case GE: case GT: -calc: if (true < 0) { +calc: if (True < 0) { p->n_op = negrel[p->n_op - EQ]; - true = false; - false = -1; + True = False; + False = -1; } rmcops(p->n_left); rmcops(p->n_right); - fixbranch(p, true); - if (false >= 0) - branch(false); + fixbranch(p, True); + if (False >= 0) + branch(False); break; case ULE: case UGT: @@ -2088,57 +2088,57 @@ case UGE: case ULT: /* Already true/false by definition */ if (nncon(p->n_right) && p->n_right->n_lval == 0) { - if (true < 0) { + if (True < 0) { o = o == ULT ? UGE : ULT; - true = false; + True = False; } rmcops(p->n_left); ecode(p->n_left); rmcops(p->n_right); ecode(p->n_right); nfree(p); - if (o == UGE) /* true */ - branch(true); + if (o == UGE) /* True */ + branch(True); break; } goto calc; case ANDAND: - lab = false<0 ? getlab() : false ; + lab = False<0 ? getlab() : False ; andorbr(p->n_left, -1, lab); comops(p->n_right); - andorbr(p->n_right, true, false); - if (false < 0) + andorbr(p->n_right, True, False); + if (False < 0) plabel( lab); nfree(p); break; case OROR: - lab = true<0 ? getlab() : true; + lab = True<0 ? getlab() : True; andorbr(p->n_left, lab, -1); comops(p->n_right); - andorbr(p->n_right, true, false); - if (true < 0) + andorbr(p->n_right, True, False); + if (True < 0) plabel( lab); nfree(p); break; case NOT: - andorbr(p->n_left, false, true); + andorbr(p->n_left, False, True); nfree(p); break; default: rmcops(p); - if (true >= 0) - fixbranch(p, true); - if (false >= 0) { - if (true >= 0) - branch(false); + if (True >= 0) + fixbranch(p, True); + if (False >= 0) { + if (True >= 0) + branch(False); else - fixbranch(buildtree(EQ, p, bcon(0)), false); + fixbranch(buildtree(EQ, p, bcon(0)), False); } } } --- a/mip/reader.c +++ b/mip/reader.c @@ -65,8 +65,9 @@ # include "pass2.h" #include <string.h> +#include <bsd/string.h> #include <stdarg.h> #include <stdlib.h> /* some storage declarations */ --- a/mip/match.c +++ b/mip/match.c @@ -59,8 +59,9 @@ * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. */ +#include "config.h" #include "pass2.h" #ifdef HAVE_STRINGS_H #include <strings.h> --- a/mip/regs.c +++ b/mip/regs.c @@ -25,8 +25,9 @@ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ +#include "config.h" #include "pass2.h" #include <string.h> #ifdef HAVE_STRINGS_H #include <strings.h>