Module Name:    src
Committed By:   plunky
Date:           Mon Mar 26 14:30:47 UTC 2012

Modified Files:
        src/external/bsd/pcc/dist/pcc/cc/ccom: ccom.1 gcc_compat.c pass1.h
            pftn.c
        src/external/bsd/pcc/dist/pcc/mip: common.c

Log Message:
resolve merge conflicts


To generate a diff of this commit:
cvs rdiff -u -r1.5 -r1.6 src/external/bsd/pcc/dist/pcc/cc/ccom/ccom.1
cvs rdiff -u -r1.2 -r1.3 src/external/bsd/pcc/dist/pcc/cc/ccom/gcc_compat.c \
    src/external/bsd/pcc/dist/pcc/cc/ccom/pass1.h
cvs rdiff -u -r1.7 -r1.8 src/external/bsd/pcc/dist/pcc/cc/ccom/pftn.c
cvs rdiff -u -r1.4 -r1.5 src/external/bsd/pcc/dist/pcc/mip/common.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/external/bsd/pcc/dist/pcc/cc/ccom/ccom.1
diff -u src/external/bsd/pcc/dist/pcc/cc/ccom/ccom.1:1.5 src/external/bsd/pcc/dist/pcc/cc/ccom/ccom.1:1.6
--- src/external/bsd/pcc/dist/pcc/cc/ccom/ccom.1:1.5	Wed Jan 11 20:46:48 2012
+++ src/external/bsd/pcc/dist/pcc/cc/ccom/ccom.1	Mon Mar 26 14:30:46 2012
@@ -1,5 +1,5 @@
-.\"	Id: ccom.1,v 1.24 2011/11/14 16:46:17 plunky Exp 	
-.\"	$NetBSD: ccom.1,v 1.5 2012/01/11 20:46:48 plunky Exp $
+.\"	Id: ccom.1,v 1.27 2012/03/22 21:09:41 plunky Exp 	
+.\"	$NetBSD: ccom.1,v 1.6 2012/03/26 14:30:46 plunky Exp $
 .\"
 .\" Copyright (c) 2007 Jeremy C. Reed <r...@reedmedia.net>
 .\"
@@ -16,7 +16,7 @@
 .\" ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF
 .\" THIS SOFTWARE.
 .\"
-.Dd November 14, 2011
+.Dd March 22, 2012
 .Dt CCOM 1
 .Os
 .Sh NAME
@@ -222,7 +222,7 @@ Do dead code elimination.
 Delete redundant jumps and dead code.
 .It Sy gnu89
 .It Sy gnu99
-Use gcc semantics rather than C99 for some things.
+Use GNU C semantics rather than C99 for some things.
 Currently only inline.
 .It Sy inline
 Replace calls to functions marked with an inline specifier with a copy
@@ -254,6 +254,8 @@ Code printout
 Trees when entering pass2
 .It Sy f
 Instruction matcher, may provide much output
+.It Sy g
+Print flow graphs
 .It Sy n
 Memory allocation
 .It Sy o
@@ -270,6 +272,167 @@ Sethi-Ullman computations
 Target-specific flag, used in machine-dependent code
 .El
 .El
+.Sh PRAGMAS
+Input lines starting with a
+.Dq #pragma
+directive can be used to modify behaviour of
+.Nm
+during compilation.
+All tokens up to the first unescaped newline are considered part
+of the pragma command, with the following operations being recognized:
+.Bl -tag
+.It Sy STDC
+Standard C99 operator follows.
+Currently no C99 operations are implemented, and any directives starting
+with this token will be silently ignored.
+.It Sy GCC diagnostic Ar effect Qq Ar option
+GNU C compatibility.
+Alter the effects of compiler diagnostics.
+The required
+.Ar effect
+should be stated as
+.Sy warning ,
+.Sy error
+or
+.Sy ignored ,
+followed by the compiler diagnostic
+.Ar option
+in double quotes.
+For example, to force unknown pragmas to always generate an error,
+a standard header might include
+.Bd -literal -offset 2n
+#pragma GCC diagnostic error "-Wunknown-pragmas"
+.Ed
+.It Sy GCC poison Ar identifier ...
+GNU C compatibility.
+Cause an error if any of the following
+.Ar identifier Ns s
+subsequently appear in the code
+.Pq but not in any macro expansions .
+Currently not implemented.
+.It Sy GCC visibility
+GNU C compatibility.
+Currently not implemented.
+.It Sy pack Ns Pq Op Ar n
+Set the default maximum alignment for structures and unions, such that
+members will have their natural alignment requirements clamped at this
+value and may be stored misaligned.
+If
+.Ar n
+is not given, the alignment is reset to the target default.
+.It Sy pack Ns Pq Sy push Ns Op , Ar n
+Push the current pack setting onto an internal stack then, if
+.Ar n
+is given, change the default alignment for structures and unions.
+Currently not implemented.
+.It Sy pack Ns Pq Sy pop
+Change the pack setting to the most recently pushed value, and remove
+that setting from the stack.
+Currently not implemented.
+.It Sy packed Op Ar n
+Set the maximum alignment for the structure or union defined
+in the current statement.
+If
+.Ar n
+is not given, the default value of 1 is used.
+.Pq Currently this works except Ar n is not used
+.It Sy aligned Op Ar n
+Set the minimum alignment for the structure or union defined
+in the current statement.
+.It Sy rename Ar name
+Provide an alternative
+.Ar name
+which will be used to reference the object declared in the current statement.
+.It Sy weak Ar name Ns Op = Ns Ar alias
+Mark
+.Ar name
+as a weak rather than a global symbol, to allow its definition to be
+overridden at link time.
+If an
+.Ar alias
+is given, this will be used as the default value of
+.Ar name.
+.It Sy ident
+Currently not implemented.
+.El
+.Lp
+and the following target-specific operations are handled by
+machine-dependent code:
+.Bl -tag
+.It Sy tls
+For AMD64 and i386 targets, the variable declared in the current statement
+will be referenced via the
+.Dq thread-local storage
+mechanism.
+.It Sy init
+For AMD64, ARM, HPPA, i386, MIPS and PowerPC targets, when the current statement is a
+function declaration, generate a reference in the
+.Sy .ctors
+section, enabling library code to call the function prior to entering
+.Fn main .
+.It Sy fini
+For AMD64, ARM, HPPA, i386, MIPS and PowerPC targets, when the current statement is a
+function declaration, generate a reference in the
+.Sy .dtors
+section, enabling library code to call the function when
+.Fn main
+returns or the
+.Fn exit
+function is called.
+.It Sy section Ar name
+For AMD64, ARM, HPPA and i386 targets, place the subsequent code in the named
+section.
+.Pq This is currently broken .
+.It Sy alias Ar name
+For AMD64, HPPA and i386 targets, emit assembler instructions providing an
+alias for the symbol defined by the current statement.
+.It Sy stdcall
+For i386 targets, enable
+.Dq stdcall
+semantics during code generation, where function arguments are passed on
+the stack in right-to-left order, and the callee is responsible for adjusting
+the stack pointer before returning.
+Any function result is passed in the EAX register.
+On win32, the function name is postfixed with an
+.Dq @
+and the size of the stack adjustment.
+.It Sy cdecl
+For i386 targets, enable
+.Dq cdecl
+semantics during code generation, where function arguments are passed on
+the stack in right-to-left order, and the caller is responsible for cleaning
+up the stack after the function returns.
+Any function result is passed in the EAX register.
+This is the default.
+.It Sy fastcall
+For i386-win32 targets, enable
+.Dq fastcall
+semantics during code generation.
+.Po
+Currently this is equivalent to
+.Sy stdcall ,
+which is likely wrong
+.Pc .
+.It Sy dllimport
+For i386-win32 targets, references to the external symbol defined by
+the current statement will be made via indirect access through a
+location identified by the symbol name prefixed with
+.Dq __imp_ .
+.It Sy dllexport
+For i386-win32 targets, the external symbol declared by the current
+statement will be exported as an indirect reference to be
+accessed with
+.Sy dllimport .
+The global locator will be the symbol name prefixed with
+.Dq __imp_ .
+Currently this is not completely implemented.
+.El
+.Pp
+Any unknown
+.Dq #pragma
+directives will be ignored unless the
+.Fl Wunknown-pragmas
+diagnostic is in effect.
 .Sh SEE ALSO
 .Xr as 1 ,
 .Xr cpp 1 ,

Index: src/external/bsd/pcc/dist/pcc/cc/ccom/gcc_compat.c
diff -u src/external/bsd/pcc/dist/pcc/cc/ccom/gcc_compat.c:1.2 src/external/bsd/pcc/dist/pcc/cc/ccom/gcc_compat.c:1.3
--- src/external/bsd/pcc/dist/pcc/cc/ccom/gcc_compat.c:1.2	Mon Mar 12 09:09:40 2012
+++ src/external/bsd/pcc/dist/pcc/cc/ccom/gcc_compat.c	Mon Mar 26 14:30:46 2012
@@ -1,5 +1,5 @@
-/*      Id: gcc_compat.c,v 1.81 2011/07/27 13:41:44 ragge Exp      */	
-/*      $NetBSD: gcc_compat.c,v 1.2 2012/03/12 09:09:40 plunky Exp $     */
+/*      Id: gcc_compat.c,v 1.83 2012/03/22 18:04:41 plunky Exp      */	
+/*      $NetBSD: gcc_compat.c,v 1.3 2012/03/26 14:30:46 plunky Exp $     */
 /*
  * Copyright (c) 2004 Anders Magnusson (ra...@ludd.luth.se).
  * All rights reserved.
@@ -514,7 +514,8 @@ gcc_tcattrfix(NODE *p)
 int
 pragmas_gcc(char *t)
 {
-	int ign, warn, err, i, u;
+	char u;
+	int ign, warn, err, i;
 	extern bittype warnary[], werrary[];
 	extern char *flagstr[], *pragstore;
 
Index: src/external/bsd/pcc/dist/pcc/cc/ccom/pass1.h
diff -u src/external/bsd/pcc/dist/pcc/cc/ccom/pass1.h:1.2 src/external/bsd/pcc/dist/pcc/cc/ccom/pass1.h:1.3
--- src/external/bsd/pcc/dist/pcc/cc/ccom/pass1.h:1.2	Mon Mar 12 09:09:40 2012
+++ src/external/bsd/pcc/dist/pcc/cc/ccom/pass1.h	Mon Mar 26 14:30:46 2012
@@ -1,5 +1,5 @@
-/*	Id: pass1.h,v 1.235 2011/08/14 14:52:29 ragge Exp 	*/	
-/*	$NetBSD: pass1.h,v 1.2 2012/03/12 09:09:40 plunky Exp $	*/
+/*	Id: pass1.h,v 1.237 2012/03/22 18:51:40 plunky Exp 	*/	
+/*	$NetBSD: pass1.h,v 1.3 2012/03/26 14:30:46 plunky Exp $	*/
 /*
  * Copyright(C) Caldera International Inc. 2001-2002. All rights reserved.
  *
@@ -169,7 +169,6 @@ int mygenswitch(int, TWORD, struct swent
 extern	int blevel;
 extern	int instruct, got_type;
 extern	int oldstyle;
-extern	int oflag;
 
 extern	int lineno, nerrors;
 
@@ -183,8 +182,8 @@ extern	OFFSZ inoff;
 extern	int reached;
 extern	int isinlining;
 extern	int xinline, xgnu89, xgnu99;
-
-extern	int sdebug, idebug, pdebug;
+extern	int bdebug, ddebug, edebug, idebug, ndebug;
+extern	int odebug, pdebug, sdebug, tdebug, xdebug;
 
 /* various labels */
 extern	int brklab;

Index: src/external/bsd/pcc/dist/pcc/cc/ccom/pftn.c
diff -u src/external/bsd/pcc/dist/pcc/cc/ccom/pftn.c:1.7 src/external/bsd/pcc/dist/pcc/cc/ccom/pftn.c:1.8
--- src/external/bsd/pcc/dist/pcc/cc/ccom/pftn.c:1.7	Thu Sep  1 12:55:29 2011
+++ src/external/bsd/pcc/dist/pcc/cc/ccom/pftn.c	Mon Mar 26 14:30:46 2012
@@ -1,5 +1,5 @@
-/*	Id: pftn.c,v 1.339 2011/08/31 18:02:24 plunky Exp 	*/	
-/*	$NetBSD: pftn.c,v 1.7 2011/09/01 12:55:29 plunky Exp $	*/
+/*	Id: pftn.c,v 1.342 2012/03/22 18:51:40 plunky Exp 	*/	
+/*	$NetBSD: pftn.c,v 1.8 2012/03/26 14:30:46 plunky Exp $	*/
 /*
  * Copyright (c) 2003 Anders Magnusson (ra...@ludd.luth.se).
  * All rights reserved.
@@ -131,8 +131,6 @@ static void lcommadd(struct symtab *sp);
 static NODE *mkcmplx(NODE *p, TWORD dt);
 extern int fun_inline;
 
-int ddebug = 0;
-
 /*
  * Declaration of an identifier.  Handles redeclarations, hiding,
  * incomplete types and forward declarations.
@@ -1992,6 +1990,10 @@ arglist(NODE *n)
 		if (w->n_right->n_op == ELLIPSIS)
 			continue;
 		ty = w->n_right->n_type;
+		if (ty == ENUMTY) {
+			uerror("arg %d enum undeclared", cnt);
+			ty = w->n_right->n_type = INT;
+		}
 		if (BTYPE(ty) == STRTY || BTYPE(ty) == UNIONTY)
 			num++;
 		while (ISFTN(ty) == 0 && ISARY(ty) == 0 && ty > BTMASK)
@@ -2001,6 +2003,10 @@ arglist(NODE *n)
 	}
 	cnt++;
 	ty = w->n_type;
+	if (ty == ENUMTY) {
+		uerror("arg %d enum undeclared", cnt);
+		ty = w->n_type = INT;
+	}
 	if (BTYPE(ty) == STRTY || BTYPE(ty) == UNIONTY)
 		num++;
 	while (ISFTN(ty) == 0 && ISARY(ty) == 0 && ty > BTMASK)
@@ -2168,7 +2174,10 @@ alprint(union arglist *al, int in)
 				printf(" dim %d ", al->df->ddim);
 			} else if (ISFTN(t)) {
 				al++;
-				alprint(al->df->dfun, in+1);
+				if (al->df->dfun) {
+					printf("\n");
+					alprint(al->df->dfun, in+1);
+				}
 			}
 			t = DECREF(t);
 		}
@@ -2183,6 +2192,7 @@ alprint(union arglist *al, int in)
 		printf("end arglist\n");
 }
 #endif
+
 int
 suemeq(struct attr *s1, struct attr *s2)
 {
@@ -2976,9 +2986,9 @@ complinit()
 	struct rstack *rp;
 	NODE *p, *q;
 	char *n[] = { "0f", "0d", "0l" };
-	int i, odebug;
+	int i, d_debug;
 
-	odebug = ddebug;
+	d_debug = ddebug;
 	ddebug = 0;
 	real = addname("__real");
 	imag = addname("__imag");
@@ -2996,7 +3006,7 @@ complinit()
 		nfree(q);
 	}
 	nfree(p);
-	ddebug = odebug;
+	ddebug = d_debug;
 }
 
 /*

Index: src/external/bsd/pcc/dist/pcc/mip/common.c
diff -u src/external/bsd/pcc/dist/pcc/mip/common.c:1.4 src/external/bsd/pcc/dist/pcc/mip/common.c:1.5
--- src/external/bsd/pcc/dist/pcc/mip/common.c:1.4	Wed Jan 11 20:46:48 2012
+++ src/external/bsd/pcc/dist/pcc/mip/common.c	Mon Mar 26 14:30:47 2012
@@ -1,5 +1,5 @@
-/*	Id: common.c,v 1.99 2011/11/14 11:52:13 plunky Exp 	*/	
-/*	$NetBSD: common.c,v 1.4 2012/01/11 20:46:48 plunky Exp $	*/
+/*	Id: common.c,v 1.100 2012/03/22 18:51:40 plunky Exp 	*/	
+/*	$NetBSD: common.c,v 1.5 2012/03/26 14:30:47 plunky Exp $	*/
 /*
  * Copyright (c) 2003 Anders Magnusson (ra...@ludd.luth.se).
  * All rights reserved.
@@ -263,14 +263,14 @@ talloc()
 		freelink = p->next;
 		if (p->n_op != FREE)
 			cerror("node not FREE: %p", p);
-		if (nflag)
+		if (ndebug)
 			printf("alloc node %p from freelist\n", p);
 		return p;
 	}
 
 	p = permalloc(sizeof(NODE));
 	p->n_op = FREE;
-	if (nflag)
+	if (ndebug)
 		printf("alloc node %p from memory\n", p);
 	return p;
 }
@@ -351,7 +351,7 @@ nfree(NODE *p)
 	}
 #endif
 
-	if (nflag)
+	if (ndebug)
 		printf("freeing node %p\n", p);
 	p->n_op = FREE;
 	p->next = freelink;

Reply via email to