summaryrefslogtreecommitdiff
path: root/src/cmd/cc/cc.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/cmd/cc/cc.h')
-rw-r--r--src/cmd/cc/cc.h38
1 files changed, 22 insertions, 16 deletions
diff --git a/src/cmd/cc/cc.h b/src/cmd/cc/cc.h
index af2339c97..c8aac1253 100644
--- a/src/cmd/cc/cc.h
+++ b/src/cmd/cc/cc.h
@@ -30,6 +30,7 @@
#include <libc.h>
#include <bio.h>
+#include <link.h>
#ifndef EXTERN
#define EXTERN extern
@@ -48,13 +49,13 @@ typedef struct Type Type;
typedef struct Funct Funct;
typedef struct Decl Decl;
typedef struct Io Io;
-typedef struct Hist Hist;
typedef struct Term Term;
typedef struct Init Init;
typedef struct Bits Bits;
typedef struct Bvec Bvec;
typedef struct Dynimp Dynimp;
typedef struct Dynexp Dynexp;
+typedef struct Var Var;
typedef Rune TRune; /* target system type */
@@ -83,6 +84,14 @@ struct Bvec
uint32 b[];
};
+struct Var
+{
+ vlong offset;
+ LSym* sym;
+ char name;
+ char etype;
+};
+
struct Node
{
Node* left;
@@ -114,6 +123,7 @@ struct Node
struct Sym
{
Sym* link;
+ LSym* lsym;
Type* type;
Type* suetag;
Type* tenum;
@@ -200,16 +210,6 @@ struct Io
};
#define I ((Io*)0)
-struct Hist
-{
- Hist* link;
- char* name;
- int32 line;
- int32 offset;
-};
-#define H ((Hist*)0)
-EXTERN Hist* hist;
-
struct Term
{
vlong mult;
@@ -469,7 +469,6 @@ EXTERN int32 autoffset;
EXTERN int blockno;
EXTERN Decl* dclstack;
EXTERN int debug[256];
-EXTERN Hist* ehist;
EXTERN int32 firstbit;
EXTERN Sym* firstarg;
EXTERN Type* firstargtype;
@@ -498,7 +497,6 @@ EXTERN int32 nsymb;
EXTERN Biobuf outbuf;
EXTERN Biobuf diagbuf;
EXTERN char* outfile;
-EXTERN char* pathname;
EXTERN int peekc;
EXTERN int32 stkoff;
EXTERN Type* strf;
@@ -508,8 +506,9 @@ EXTERN Sym* symstring;
EXTERN int taggen;
EXTERN Type* tfield;
EXTERN Type* tufield;
-EXTERN int thechar;
-EXTERN char* thestring;
+extern int thechar;
+extern char* thestring;
+extern LinkArch* thelinkarch;
EXTERN Type* thisfn;
EXTERN int32 thunk;
EXTERN Type* types[NALLTYPES];
@@ -525,8 +524,11 @@ EXTERN int flag_largemodel;
EXTERN int ncontin;
EXTERN int canreach;
EXTERN int warnreach;
+EXTERN int nacl;
EXTERN Bits zbits;
EXTERN Fmt pragcgobuf;
+EXTERN Biobuf bstdout;
+EXTERN Var var[NVAR];
extern char *onames[], *tnames[], *gnames[];
extern char *cnames[], *qnames[], *bnames[];
@@ -556,6 +558,7 @@ extern uchar typechlpfd[];
EXTERN uchar* typeword;
EXTERN uchar* typecmplx;
+EXTERN Link* ctxt;
extern uint32 thash1;
extern uint32 thash2;
@@ -603,6 +606,7 @@ int FNconv(Fmt*);
int Oconv(Fmt*);
int Qconv(Fmt*);
int VBconv(Fmt*);
+int Bconv(Fmt*);
void setinclude(char*);
/*
@@ -612,7 +616,6 @@ void dodefine(char*);
void domacro(void);
Sym* getsym(void);
int32 getnsn(void);
-void linehist(char*, int);
void macdef(void);
void macprag(void);
void macend(void);
@@ -731,6 +734,7 @@ void diag(Node*, char*, ...);
void warn(Node*, char*, ...);
void yyerror(char*, ...);
void fatal(Node*, char*, ...);
+LSym* linksym(Sym*);
/*
* acid.c
@@ -791,6 +795,7 @@ int32 exreg(Type*);
int32 align(int32, Type*, int, int32*);
int32 maxround(int32, int32);
int hasdotdotdot(void);
+void linkarchinit(void);
extern schar ewidth[];
@@ -814,6 +819,7 @@ int machcap(Node*);
#pragma varargck argpos diag 2
#pragma varargck argpos yyerror 1
+#pragma varargck type "B" Bits
#pragma varargck type "F" Node*
#pragma varargck type "L" int32
#pragma varargck type "Q" int32