summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--build/build.c24
-rw-r--r--build/buildio.h28
-rw-r--r--build/expression.c90
-rw-r--r--build/files.c253
-rw-r--r--build/misc.c2
-rw-r--r--build/names.c44
-rw-r--r--build/pack.c74
-rw-r--r--build/parseBuildInstallClean.c5
-rw-r--r--build/parseChangelog.c16
-rw-r--r--build/parseDescription.c12
-rw-r--r--build/parseFiles.c14
-rw-r--r--build/parsePreamble.c82
-rw-r--r--build/parsePrep.c55
-rw-r--r--build/parseReqs.c15
-rw-r--r--build/parseScript.c26
-rw-r--r--build/parseSpec.c100
-rw-r--r--build/poptBT.c24
-rw-r--r--build/reqprov.c8
-rw-r--r--build/rpmbuild.h217
-rw-r--r--build/rpmfc.c175
-rw-r--r--build/rpmfc.h54
-rw-r--r--build/rpmspec.h103
-rw-r--r--build/spec.c94
23 files changed, 278 insertions, 1237 deletions
diff --git a/build/build.c b/build/build.c
index 697de5164..35162a075 100644
--- a/build/build.c
+++ b/build/build.c
@@ -10,18 +10,11 @@
#include "debug.h"
-/*@unchecked@*/
static int _build_debug = 0;
-/*@access StringBuf @*/
-/*@access urlinfo @*/ /* XXX compared with NULL */
-/*@access FD_t @*/
-
/**
*/
static void doRmSource(Spec spec)
- /*@globals rpmGlobalMacroContext, h_errno, fileSystem, internalState @*/
- /*@modifies rpmGlobalMacroContext, fileSystem, internalState @*/
{
struct Source *p;
Package pkg;
@@ -77,7 +70,6 @@ int doScript(Spec spec, int what, const char *name, StringBuf sb, int test)
int status;
int rc;
- /*@-branchstate@*/
switch (what) {
case RPMBUILD_PREP:
name = "%prep";
@@ -129,7 +121,6 @@ int doScript(Spec spec, int what, const char *name, StringBuf sb, int test)
}
if (name == NULL) /* XXX shouldn't happen */
name = "???";
- /*@=branchstate@*/
if ((what != RPMBUILD_RMBUILD) && sb == NULL) {
rc = 0;
@@ -153,24 +144,19 @@ int doScript(Spec spec, int what, const char *name, StringBuf sb, int test)
}
#endif
- /*@-branchstate@*/
if (fdGetFp(fd) == NULL)
xfd = Fdopen(fd, "w.fpio");
else
xfd = fd;
- /*@=branchstate@*/
- /*@-type@*/ /* FIX: cast? */
+ /* FIX: cast? */
if ((fp = fdGetFp(xfd)) == NULL) {
rc = RPMERR_SCRIPT;
goto exit;
}
- /*@=type@*/
(void) urlPath(rootURL, &rootDir);
- /*@-branchstate@*/
if (*rootDir == '\0') rootDir = "/";
- /*@=branchstate@*/
(void) urlPath(scriptName, &buildScript);
@@ -199,13 +185,11 @@ int doScript(Spec spec, int what, const char *name, StringBuf sb, int test)
if (_build_debug)
fprintf(stderr, "*** rootURL %s buildDirURL %s\n", rootURL, buildDirURL);
-/*@-boundsread@*/
if (buildDirURL && buildDirURL[0] != '/' &&
(urlSplit(buildDirURL, &u) != 0)) {
rc = RPMERR_SCRIPT;
goto exit;
}
-/*@=boundsread@*/
if (u != NULL) {
switch (u->urltype) {
case URL_IS_HTTPS:
@@ -233,12 +217,8 @@ fprintf(stderr, "*** addMacros\n");
rpmMessage(RPMMESS_NORMAL, _("Executing(%s): %s\n"), name, buildCmd);
if (!(child = fork())) {
- /*@-mods@*/
errno = 0;
- /*@=mods@*/
-/*@-boundsread@*/
(void) execvp(argv[0], (char *const *)argv);
-/*@=boundsread@*/
rpmError(RPMERR_SCRIPT, _("Exec of %s failed (%s): %s\n"),
scriptName, name, strerror(errno));
@@ -300,14 +280,12 @@ int buildSpec(rpmts ts, Spec spec, int what, int test)
/* packaging on the first run, and skip RMSOURCE altogether */
if (spec->BASpecs != NULL)
for (x = 0; x < spec->BACount; x++) {
-/*@-boundsread@*/
if ((rc = buildSpec(ts, spec->BASpecs[x],
(what & ~RPMBUILD_RMSOURCE) |
(x ? 0 : (what & RPMBUILD_PACKAGESOURCE)),
test))) {
goto exit;
}
-/*@=boundsread@*/
}
} else {
if ((what & RPMBUILD_PREP) &&
diff --git a/build/buildio.h b/build/buildio.h
index f3641fa33..3e45140f6 100644
--- a/build/buildio.h
+++ b/build/buildio.h
@@ -12,12 +12,10 @@
/**
*/
-typedef /*@abstract@*/ struct cpioSourceArchive_s {
+typedef struct cpioSourceArchive_s {
unsigned int cpioArchiveSize;
FD_t cpioFdIn;
-/*@refcounted@*/ /*@relnull@*/
rpmfi cpioList;
-/*@only@*/
struct rpmlead * lead; /* XXX FIXME: exorcize lead/arch/os */
} * CSA_t;
@@ -34,15 +32,11 @@ extern "C" {
* @param csa
* @return 0 on success
*/
-/*@unused@*/ int readRPM(/*@null@*/ const char * fileName,
- /*@out@*/ Spec * specp,
- /*@out@*/ struct rpmlead * lead,
- /*@out@*/ Header * sigs,
- CSA_t csa)
- /*@globals rpmGlobalMacroContext, h_errno,
- fileSystem, internalState @*/
- /*@modifies *specp, *lead, *sigs, csa, csa->cpioFdIn,
- rpmGlobalMacroContext, fileSystem, internalState @*/;
+int readRPM(const char * fileName,
+ Spec * specp,
+ struct rpmlead * lead,
+ Header * sigs,
+ CSA_t csa);
/**
* Write rpm package to file.
@@ -59,16 +53,12 @@ extern "C" {
* @retval cookie generated cookie (i.e build host/time)
* @return 0 on success
*/
-int writeRPM(Header * hdrp, /*@null@*/ unsigned char ** pkgidp,
+int writeRPM(Header * hdrp, unsigned char ** pkgidp,
const char * fileName,
int type,
CSA_t csa,
- /*@null@*/ char * passPhrase,
- /*@out@*/ const char ** cookie)
- /*@globals rpmGlobalMacroContext, h_errno,
- fileSystem, internalState @*/
- /*@modifies *hdrp, *pkgidp, *cookie, csa, csa->cpioArchiveSize,
- rpmGlobalMacroContext, fileSystem, internalState @*/;
+ char * passPhrase,
+ const char ** cookie);
#ifdef __cplusplus
}
diff --git a/build/expression.c b/build/expression.c
index dd407d75e..012ee2b4b 100644
--- a/build/expression.c
+++ b/build/expression.c
@@ -41,7 +41,6 @@ typedef struct _value {
/**
*/
static Value valueMakeInteger(int i)
- /*@*/
{
Value v;
@@ -53,8 +52,7 @@ static Value valueMakeInteger(int i)
/**
*/
-static Value valueMakeString(/*@only@*/ const char *s)
- /*@*/
+static Value valueMakeString(const char *s)
{
Value v;
@@ -66,8 +64,7 @@ static Value valueMakeString(/*@only@*/ const char *s)
/**
*/
-static void valueFree( /*@only@*/ Value v)
- /*@modifies v @*/
+static void valueFree( Value v)
{
if (v) {
if (v->type == VALUE_TYPE_STRING)
@@ -78,7 +75,6 @@ static void valueFree( /*@only@*/ Value v)
#ifdef DEBUG_PARSER
static void valueDump(const char *msg, Value v, FILE *fp)
- /*@*/
{
if (msg)
fprintf(fp, "%s ", msg);
@@ -101,12 +97,9 @@ static void valueDump(const char *msg, Value v, FILE *fp)
* Parser state.
*/
typedef struct _parseState {
-/*@owned@*/
char *str; /*!< expression string */
-/*@dependent@*/
char *p; /*!< current position in expression string */
int nextToken; /*!< current lookahead token */
-/*@relnull@*/
Value tokenValue; /*!< valid when TOK_INTEGER or TOK_STRING */
Spec spec; /*!< spec file that we are parsing inside of */
} *ParseState;
@@ -115,7 +108,6 @@ typedef struct _parseState {
/**
* \name Parser tokens
*/
-/*@{*/
#define TOK_EOF 1
#define TOK_INTEGER 2
#define TOK_STRING 3
@@ -135,7 +127,6 @@ typedef struct _parseState {
#define TOK_NOT 17
#define TOK_LOGICAL_AND 18
#define TOK_LOGICAL_OR 19
-/*@}*/
#define EXPRBUFSIZ BUFSIZ
@@ -169,7 +160,6 @@ ETTE_t exprTokTable[] = {
};
static const char *prToken(int val)
- /*@*/
{
ETTE_t *et;
@@ -184,11 +174,7 @@ static const char *prToken(int val)
/**
* @param state expression parser state
*/
-/*@-boundswrite@*/
static int rdToken(ParseState state)
- /*@globals rpmGlobalMacroContext, h_errno @*/
- /*@modifies state->nextToken, state->p, state->tokenValue,
- rpmGlobalMacroContext @*/
{
int token;
Value v = NULL;
@@ -321,28 +307,18 @@ static int rdToken(ParseState state)
return 0;
}
-/*@=boundswrite@*/
-/*@null@*/
-static Value doLogical(ParseState state)
- /*@globals rpmGlobalMacroContext, h_errno @*/
- /*@modifies state->nextToken, state->p, state->tokenValue,
- rpmGlobalMacroContext @*/;
+static Value doLogical(ParseState state);
/**
* @param state expression parser state
*/
-/*@null@*/
static Value doPrimary(ParseState state)
- /*@globals rpmGlobalMacroContext, h_errno @*/
- /*@modifies state->nextToken, state->p, state->tokenValue,
- rpmGlobalMacroContext @*/
{
Value v;
DEBUG(printf("doPrimary()\n"));
- /*@-branchstate@*/
switch (state->nextToken) {
case TOK_OPEN_P:
if (rdToken(state))
@@ -405,9 +381,8 @@ static Value doPrimary(ParseState state)
break;
default:
return NULL;
- /*@notreached@*/ break;
+ break;
}
- /*@=branchstate@*/
DEBUG(valueDump("doPrimary:", v, stdout));
return v;
@@ -416,11 +391,7 @@ static Value doPrimary(ParseState state)
/**
* @param state expression parser state
*/
-/*@null@*/
static Value doMultiplyDivide(ParseState state)
- /*@globals rpmGlobalMacroContext, h_errno @*/
- /*@modifies state->nextToken, state->p, state->tokenValue,
- rpmGlobalMacroContext @*/
{
Value v1, v2 = NULL;
@@ -430,7 +401,6 @@ static Value doMultiplyDivide(ParseState state)
if (v1 == NULL)
return NULL;
- /*@-branchstate@*/
while (state->nextToken == TOK_MULTIPLY
|| state->nextToken == TOK_DIVIDE) {
int op = state->nextToken;
@@ -462,7 +432,6 @@ static Value doMultiplyDivide(ParseState state)
return NULL;
}
}
- /*@=branchstate@*/
if (v2) valueFree(v2);
return v1;
@@ -471,12 +440,7 @@ static Value doMultiplyDivide(ParseState state)
/**
* @param state expression parser state
*/
-/*@-boundswrite@*/
-/*@null@*/
static Value doAddSubtract(ParseState state)
- /*@globals rpmGlobalMacroContext, h_errno @*/
- /*@modifies state->nextToken, state->p, state->tokenValue,
- rpmGlobalMacroContext @*/
{
Value v1, v2 = NULL;
@@ -486,7 +450,6 @@ static Value doAddSubtract(ParseState state)
if (v1 == NULL)
return NULL;
- /*@-branchstate@*/
while (state->nextToken == TOK_ADD || state->nextToken == TOK_MINUS) {
int op = state->nextToken;
@@ -527,21 +490,15 @@ static Value doAddSubtract(ParseState state)
v1 = valueMakeString(copy);
}
}
- /*@=branchstate@*/
if (v2) valueFree(v2);
return v1;
}
-/*@=boundswrite@*/
/**
* @param state expression parser state
*/
-/*@null@*/
static Value doRelational(ParseState state)
- /*@globals rpmGlobalMacroContext, h_errno @*/
- /*@modifies state->nextToken, state->p, state->tokenValue,
- rpmGlobalMacroContext @*/
{
Value v1, v2 = NULL;
@@ -551,7 +508,6 @@ static Value doRelational(ParseState state)
if (v1 == NULL)
return NULL;
- /*@-branchstate@*/
while (state->nextToken >= TOK_EQ && state->nextToken <= TOK_GE) {
int op = state->nextToken;
@@ -574,24 +530,24 @@ static Value doRelational(ParseState state)
switch (op) {
case TOK_EQ:
r = (i1 == i2);
- /*@switchbreak@*/ break;
+ break;
case TOK_NEQ:
r = (i1 != i2);
- /*@switchbreak@*/ break;
+ break;
case TOK_LT:
r = (i1 < i2);
- /*@switchbreak@*/ break;
+ break;
case TOK_LE:
r = (i1 <= i2);
- /*@switchbreak@*/ break;
+ break;
case TOK_GT:
r = (i1 > i2);
- /*@switchbreak@*/ break;
+ break;
case TOK_GE:
r = (i1 >= i2);
- /*@switchbreak@*/ break;
+ break;
default:
- /*@switchbreak@*/ break;
+ break;
}
valueFree(v1);
v1 = valueMakeInteger(r);
@@ -602,30 +558,29 @@ static Value doRelational(ParseState state)
switch (op) {
case TOK_EQ:
r = (strcmp(s1,s2) == 0);
- /*@switchbreak@*/ break;
+ break;
case TOK_NEQ:
r = (strcmp(s1,s2) != 0);
- /*@switchbreak@*/ break;
+ break;
case TOK_LT:
r = (strcmp(s1,s2) < 0);
- /*@switchbreak@*/ break;
+ break;
case TOK_LE:
r = (strcmp(s1,s2) <= 0);
- /*@switchbreak@*/ break;
+ break;
case TOK_GT:
r = (strcmp(s1,s2) > 0);
- /*@switchbreak@*/ break;
+ break;
case TOK_GE:
r = (strcmp(s1,s2) >= 0);
- /*@switchbreak@*/ break;
+ break;
default:
- /*@switchbreak@*/ break;
+ break;
}
valueFree(v1);
v1 = valueMakeInteger(r);
}
}
- /*@=branchstate@*/
if (v2) valueFree(v2);
return v1;
@@ -635,9 +590,6 @@ static Value doRelational(ParseState state)
* @param state expression parser state
*/
static Value doLogical(ParseState state)
- /*@globals rpmGlobalMacroContext, h_errno @*/
- /*@modifies state->nextToken, state->p, state->tokenValue,
- rpmGlobalMacroContext @*/
{
Value v1, v2 = NULL;
@@ -647,7 +599,6 @@ static Value doLogical(ParseState state)
if (v1 == NULL)
return NULL;
- /*@-branchstate@*/
while (state->nextToken == TOK_LOGICAL_AND
|| state->nextToken == TOK_LOGICAL_OR) {
int op = state->nextToken;
@@ -679,7 +630,6 @@ static Value doLogical(ParseState state)
return NULL;
}
}
- /*@=branchstate@*/
if (v2) valueFree(v2);
return v1;
@@ -721,9 +671,7 @@ int parseExpressionBoolean(Spec spec, const char *expr)
result = v->data.i != 0;
break;
case VALUE_TYPE_STRING:
-/*@-boundsread@*/
result = v->data.s[0] != '\0';
-/*@=boundsread@*/
break;
default:
break;
@@ -765,7 +713,6 @@ char * parseExpressionString(Spec spec, const char *expr)
DEBUG(valueDump("parseExprString:", v, stdout));
- /*@-branchstate@*/
switch (v->type) {
case VALUE_TYPE_INTEGER: {
char buf[128];
@@ -778,7 +725,6 @@ char * parseExpressionString(Spec spec, const char *expr)
default:
break;
}
- /*@=branchstate@*/
state.str = _free(state.str);
valueFree(v);
diff --git a/build/files.c b/build/files.c
index 25adeac07..9aac1dbae 100644
--- a/build/files.c
+++ b/build/files.c
@@ -32,12 +32,6 @@
#include "misc.h"
#include "debug.h"
-/*@access Header @*/
-/*@access rpmfi @*/
-/*@access rpmte @*/
-/*@access FD_t @*/
-/*@access StringBuf @*/ /* compared with NULL */
-
#define SKIPWHITE(_x) {while(*(_x) && (xisspace(*_x) || *(_x) == ',')) (_x)++;}
#define SKIPNONWHITE(_x){while(*(_x) &&!(xisspace(*_x) || *(_x) == ',')) (_x)++;}
@@ -73,52 +67,37 @@ typedef struct FileListRec_s {
#define fl_size fl_st.st_size
#define fl_mtime fl_st.st_mtime
-/*@only@*/
const char *diskURL; /* get file from here */
-/*@only@*/
const char *fileURL; /* filename in cpio archive */
-/*@observer@*/
const char *uname;
-/*@observer@*/
const char *gname;
unsigned flags;
specdFlags specdFlags; /* which attributes have been explicitly specified. */
unsigned verifyFlags;
-/*@only@*/
const char *langs; /* XXX locales separated with | */
} * FileListRec;
/**
*/
typedef struct AttrRec_s {
-/*@null@*/
const char *ar_fmodestr;
-/*@null@*/
const char *ar_dmodestr;
-/*@null@*/
const char *ar_user;
-/*@null@*/
const char *ar_group;
mode_t ar_fmode;
mode_t ar_dmode;
} * AttrRec;
-/*@-readonlytrans@*/
-/*@unchecked@*/ /*@observer@*/
static struct AttrRec_s root_ar = { NULL, NULL, "root", "root", 0, 0 };
-/*@=readonlytrans@*/
/* list of files */
-/*@unchecked@*/ /*@only@*/ /*@null@*/
static StringBuf check_fileList = NULL;
/**
* Package file tree walk data.
*/
typedef struct FileList_s {
-/*@only@*/
const char * buildRootURL;
-/*@only@*/
const char * prefix;
int fileCount;
@@ -143,7 +122,6 @@ typedef struct FileList_s {
specdFlags defSpecdFlags;
int defVerifyFlags;
int nLangs;
-/*@only@*/ /*@null@*/
const char ** currentLangs;
/* Hard coded limit of MAXDOCDIR docdirs. */
@@ -151,7 +129,6 @@ typedef struct FileList_s {
const char * docDirs[MAXDOCDIR];
int docDirCount;
-/*@only@*/
FileListRec fileList;
int fileListRecsAlloced;
int fileListRecsUsed;
@@ -159,7 +136,7 @@ typedef struct FileList_s {
/**
*/
-static void nullAttrRec(/*@out@*/ AttrRec ar) /*@modifies ar @*/
+static void nullAttrRec(AttrRec ar)
{
ar->ar_fmodestr = NULL;
ar->ar_dmodestr = NULL;
@@ -171,22 +148,19 @@ static void nullAttrRec(/*@out@*/ AttrRec ar) /*@modifies ar @*/
/**
*/
-static void freeAttrRec(AttrRec ar) /*@modifies ar @*/
+static void freeAttrRec(AttrRec ar)
{
ar->ar_fmodestr = _free(ar->ar_fmodestr);
ar->ar_dmodestr = _free(ar->ar_dmodestr);
ar->ar_user = _free(ar->ar_user);
ar->ar_group = _free(ar->ar_group);
/* XXX doesn't free ar (yet) */
- /*@-nullstate@*/
return;
- /*@=nullstate@*/
}
/**
*/
-static void dupAttrRec(const AttrRec oar, /*@in@*/ /*@out@*/ AttrRec nar)
- /*@modifies nar @*/
+static void dupAttrRec(const AttrRec oar, AttrRec nar)
{
if (oar == nar)
return;
@@ -203,8 +177,6 @@ static void dupAttrRec(const AttrRec oar, /*@in@*/ /*@out@*/ AttrRec nar)
/**
*/
static void dumpAttrRec(const char * msg, AttrRec ar)
- /*@globals fileSystem@*/
- /*@modifies fileSystem @*/
{
if (msg)
fprintf(stderr, "%s:\t", msg);
@@ -220,10 +192,7 @@ static void dumpAttrRec(const char * msg, AttrRec ar)
* @param s
* @param delim
*/
-/*@-boundswrite@*/
-/*@null@*/
-static char *strtokWithQuotes(/*@null@*/ char *s, char *delim)
- /*@modifies *s @*/
+static char *strtokWithQuotes(char *s, char *delim)
{
static char *olds = NULL;
char *token;
@@ -258,17 +227,12 @@ static char *strtokWithQuotes(/*@null@*/ char *s, char *delim)
olds = s+1;
}
- /*@-retalias -temptrans @*/
return token;
- /*@=retalias =temptrans @*/
}
-/*@=boundswrite@*/
/**
*/
static void timeCheck(int tc, Header h)
- /*@globals internalState @*/
- /*@modifies internalState @*/
{
HGE_t hge = (HGE_t)headerGetEntryMinMemory;
HFD_t hfd = headerFreeData;
@@ -281,27 +245,23 @@ static void timeCheck(int tc, Header h)
x = hge(h, RPMTAG_OLDFILENAMES, &fnt, (void **) &files, &count);
x = hge(h, RPMTAG_FILEMTIMES, NULL, (void **) &mtime, NULL);
-/*@-boundsread@*/
for (x = 0; x < count; x++) {
if ((currentTime - mtime[x]) > tc)
rpmMessage(RPMMESS_WARNING, _("TIMECHECK failure: %s\n"), files[x]);
}
files = hfd(files, fnt);
-/*@=boundsread@*/
}
/**
*/
typedef struct VFA {
-/*@observer@*/ /*@null@*/ const char * attribute;
+const char * attribute;
int not;
int flag;
} VFA_t;
/**
*/
-/*@-exportlocal -exportheadervar@*/
-/*@unchecked@*/
VFA_t verifyAttrs[] = {
{ "md5", 0, RPMVERIFY_MD5 },
{ "size", 0, RPMVERIFY_FILESIZE },
@@ -313,7 +273,6 @@ VFA_t verifyAttrs[] = {
{ "rdev", 0, RPMVERIFY_RDEV },
{ NULL, 0, 0 }
};
-/*@=exportlocal =exportheadervar@*/
/**
* Parse %verify and %defverify from file manifest.
@@ -321,11 +280,7 @@ VFA_t verifyAttrs[] = {
* @param fl package file tree walk data
* @return 0 on success
*/
-/*@-boundswrite@*/
static int parseForVerify(char * buf, FileList fl)
- /*@modifies buf, fl->processingFailed,
- fl->currentVerifyFlags, fl->defVerifyFlags,
- fl->currentSpecdFlags, fl->defSpecdFlags @*/
{
char *p, *pe, *q;
const char *name;
@@ -387,9 +342,9 @@ static int parseForVerify(char * buf, FileList fl)
{ VFA_t *vfa;
for (vfa = verifyAttrs; vfa->attribute != NULL; vfa++) {
if (strcmp(p, vfa->attribute))
- /*@innercontinue@*/ continue;
+ continue;
verifyFlags |= vfa->flag;
- /*@innerbreak@*/ break;
+ break;
}
if (vfa->attribute)
continue;
@@ -409,7 +364,6 @@ static int parseForVerify(char * buf, FileList fl)
return 0;
}
-/*@=boundswrite@*/
#define isAttrDefault(_ars) ((_ars)[0] == '-' && (_ars)[1] == '\0')
@@ -419,10 +373,7 @@ static int parseForVerify(char * buf, FileList fl)
* @param fl package file tree walk data
* @return 0 on success
*/
-/*@-boundswrite@*/
static int parseForDev(char * buf, FileList fl)
- /*@modifies buf, fl->processingFailed,
- fl->noGlob, fl->devtype, fl->devmajor, fl->devminor @*/
{
const char * name;
const char * errstr = NULL;
@@ -474,12 +425,10 @@ static int parseForDev(char * buf, FileList fl)
{} ;
if (*pe == '\0') {
fl->devmajor = atoi(p);
- /*@-unsignedcompare @*/ /* LCL: ge is ok */
if (!(fl->devmajor >= 0 && fl->devmajor < 256)) {
errstr = "devmajor";
goto exit;
}
- /*@=unsignedcompare @*/
pe++;
} else {
errstr = "devmajor";
@@ -513,7 +462,6 @@ exit:
}
return rc;
}
-/*@=boundswrite@*/
/**
* Parse %attr and %defattr from file manifest.
@@ -521,11 +469,7 @@ exit:
* @param fl package file tree walk data
* @return 0 on success
*/
-/*@-boundswrite@*/
static int parseForAttr(char * buf, FileList fl)
- /*@modifies buf, fl->processingFailed,
- fl->cur_ar, fl->def_ar,
- fl->currentSpecdFlags, fl->defSpecdFlags @*/
{
const char *name;
char *p, *pe, *q;
@@ -646,7 +590,6 @@ static int parseForAttr(char * buf, FileList fl)
return 0;
}
-/*@=boundswrite@*/
/**
* Parse %config from file manifest.
@@ -654,9 +597,7 @@ static int parseForAttr(char * buf, FileList fl)
* @param fl package file tree walk data
* @return 0 on success
*/
-/*@-boundswrite@*/
static int parseForConfig(char * buf, FileList fl)
- /*@modifies buf, fl->processingFailed, fl->currentFlags @*/
{
char *p, *pe, *q;
const char *name;
@@ -712,16 +653,12 @@ static int parseForConfig(char * buf, FileList fl)
return 0;
}
-/*@=boundswrite@*/
/**
*/
static int langCmp(const void * ap, const void * bp)
- /*@*/
{
-/*@-boundsread@*/
return strcmp(*(const char **)ap, *(const char **)bp);
-/*@=boundsread@*/
}
/**
@@ -730,10 +667,7 @@ static int langCmp(const void * ap, const void * bp)
* @param fl package file tree walk data
* @return 0 on success
*/
-/*@-bounds@*/
static int parseForLang(char * buf, FileList fl)
- /*@modifies buf, fl->processingFailed,
- fl->currentLangs, fl->nLangs @*/
{
char *p, *pe, *q;
const char *name;
@@ -793,7 +727,7 @@ static int parseForLang(char * buf, FileList fl)
if (fl->currentLangs != NULL)
for (i = 0; i < fl->nLangs; i++) {
if (strncmp(fl->currentLangs[i], p, np))
- /*@innercontinue@*/ continue;
+ continue;
rpmError(RPMERR_BADSPEC, _("Duplicate locale %.*s in %%lang(%s)\n"),
(int)np, p, q);
fl->processingFailed = 1;
@@ -817,14 +751,10 @@ static int parseForLang(char * buf, FileList fl)
return 0;
}
-/*@=bounds@*/
/**
*/
-/*@-boundswrite@*/
-static int parseForRegexLang(const char * fileName, /*@out@*/ char ** lang)
- /*@globals rpmGlobalMacroContext, h_errno @*/
- /*@modifies *lang, rpmGlobalMacroContext @*/
+static int parseForRegexLang(const char * fileName, char ** lang)
{
static int initialized = 0;
static int hasRegex = 0;
@@ -863,12 +793,9 @@ static int parseForRegexLang(const char * fileName, /*@out@*/ char ** lang)
*lang = buf;
return 0;
}
-/*@=boundswrite@*/
/**
*/
-/*@-exportlocal -exportheadervar@*/
-/*@unchecked@*/
VFA_t virtualFileAttributes[] = {
{ "%dir", 0, 0 }, /* XXX why not RPMFILE_DIR? */
{ "%doc", 0, RPMFILE_DOC },
@@ -889,7 +816,6 @@ VFA_t virtualFileAttributes[] = {
{ NULL, 0, 0 }
};
-/*@=exportlocal =exportheadervar@*/
/**
* Parse simple attributes (e.g. %dir) from file manifest.
@@ -900,15 +826,8 @@ VFA_t virtualFileAttributes[] = {
* @retval *fileName file name
* @return 0 on success
*/
-/*@-boundswrite@*/
-static int parseForSimple(/*@unused@*/Spec spec, Package pkg, char * buf,
- FileList fl, /*@out@*/ const char ** fileName)
- /*@globals rpmGlobalMacroContext, h_errno @*/
- /*@modifies buf, fl->processingFailed, *fileName,
- fl->currentFlags,
- fl->docDirs, fl->docDirCount, fl->isDir,
- fl->passedSpecialDoc, fl->isSpecialDoc,
- pkg->specialDoc, rpmGlobalMacroContext @*/
+static int parseForSimple(Spec spec, Package pkg, char * buf,
+ FileList fl, const char ** fileName)
{
char *s, *t;
int res, specialDoc = 0;
@@ -943,7 +862,7 @@ static int parseForSimple(/*@unused@*/Spec spec, Package pkg, char * buf,
{ VFA_t *vfa;
for (vfa = virtualFileAttributes; vfa->attribute != NULL; vfa++) {
if (strcmp(s, vfa->attribute))
- /*@innercontinue@*/ continue;
+ continue;
if (!vfa->flag) {
if (!strcmp(s, "%dir"))
fl->isDir = 1; /* XXX why not RPMFILE_DIR? */
@@ -954,7 +873,7 @@ static int parseForSimple(/*@unused@*/Spec spec, Package pkg, char * buf,
fl->currentFlags |= vfa->flag;
}
- /*@innerbreak@*/ break;
+ break;
}
/* if we got an attribute, continue with next token */
if (vfa->attribute != NULL)
@@ -969,7 +888,6 @@ static int parseForSimple(/*@unused@*/Spec spec, Package pkg, char * buf,
res = 1;
}
- /*@-branchstate@*/
if (*s != '/') {
if (fl->currentFlags & RPMFILE_DOC) {
specialDoc = 1;
@@ -989,7 +907,6 @@ static int parseForSimple(/*@unused@*/Spec spec, Package pkg, char * buf,
} else {
*fileName = s;
}
- /*@=branchstate@*/
}
if (specialDoc) {
@@ -1032,9 +949,7 @@ static int parseForSimple(/*@unused@*/Spec spec, Package pkg, char * buf,
appendLineStringBuf(pkg->specialDoc, "rm -rf $DOCDIR");
appendLineStringBuf(pkg->specialDoc, RPM_MKDIR_P " $DOCDIR");
- /*@-temptrans@*/
*fileName = buf;
- /*@=temptrans@*/
fl->passedSpecialDoc = 1;
fl->isSpecialDoc = 1;
}
@@ -1047,11 +962,10 @@ static int parseForSimple(/*@unused@*/Spec spec, Package pkg, char * buf,
return res;
}
-/*@=boundswrite@*/
/**
*/
-static int compareFileListRecs(const void * ap, const void * bp) /*@*/
+static int compareFileListRecs(const void * ap, const void * bp)
{
const char *a = ((FileListRec)ap)->fileURL;
const char *b = ((FileListRec)bp)->fileURL;
@@ -1064,7 +978,7 @@ static int compareFileListRecs(const void * ap, const void * bp) /*@*/
* @param fileName file path
* @return 1 if doc file, 0 if not
*/
-static int isDoc(FileList fl, const char * fileName) /*@*/
+static int isDoc(FileList fl, const char * fileName)
{
int x = fl->docDirCount;
size_t k, l;
@@ -1085,7 +999,6 @@ static int isDoc(FileList fl, const char * fileName) /*@*/
* @return 1 if partial hardlink sets can exist, 0 otherwise.
*/
static int checkHardLinks(FileList fl)
- /*@*/
{
FileListRec ilp, jlp;
int i, j;
@@ -1098,13 +1011,13 @@ static int checkHardLinks(FileList fl)
for (j = i + 1; j < fl->fileListRecsUsed; j++) {
jlp = fl->fileList + j;
if (!S_ISREG(jlp->fl_mode))
- /*@innercontinue@*/ continue;
+ continue;
if (ilp->fl_nlink != jlp->fl_nlink)
- /*@innercontinue@*/ continue;
+ continue;
if (ilp->fl_ino != jlp->fl_ino)
- /*@innercontinue@*/ continue;
+ continue;
if (ilp->fl_dev != jlp->fl_dev)
- /*@innercontinue@*/ continue;
+ continue;
return 1;
}
}
@@ -1120,12 +1033,8 @@ static int checkHardLinks(FileList fl)
* @param h
* @param isSrc
*/
-/*@-bounds@*/
-static void genCpioListAndHeader(/*@partial@*/ FileList fl,
+static void genCpioListAndHeader(FileList fl,
rpmfi * fip, Header h, int isSrc)
- /*@globals rpmGlobalMacroContext, h_errno, fileSystem, internalState @*/
- /*@modifies h, *fip, fl->processingFailed, fl->fileList,
- rpmGlobalMacroContext, fileSystem, internalState @*/
{
int _addDotSlash = !(isSrc || rpmExpandNumeric("%{_noPayloadPrefix}"));
int apathlen = 0;
@@ -1218,7 +1127,6 @@ static void genCpioListAndHeader(/*@partial@*/ FileList fl,
(void) headerAddOrAppendEntry(h, RPMTAG_OLDFILENAMES, RPM_STRING_ARRAY_TYPE,
&(flp->fileURL), 1);
-/*@-sizeoftype@*/
if (sizeof(flp->fl_size) != sizeof(uint_32)) {
uint_32 psize = (uint_32)flp->fl_size;
(void) headerAddOrAppendEntry(h, RPMTAG_FILESIZES, RPM_INT32_TYPE,
@@ -1271,7 +1179,6 @@ static void genCpioListAndHeader(/*@partial@*/ FileList fl,
(void) headerAddOrAppendEntry(h, RPMTAG_FILEINODES, RPM_INT32_TYPE,
&(flp->fl_ino), 1);
}
-/*@=sizeoftype@*/
(void) headerAddOrAppendEntry(h, RPMTAG_FILELANGS, RPM_STRING_ARRAY_TYPE,
&(flp->langs), 1);
@@ -1350,9 +1257,7 @@ static void genCpioListAndHeader(/*@partial@*/ FileList fl,
if (fi == NULL) return; /* XXX can't happen */
-/*@-onlytrans@*/
fi->te = xcalloc(1, sizeof(*fi->te));
-/*@=onlytrans@*/
fi->te->type = TR_ADDED;
fi->dnl = _free(fi->dnl);
@@ -1364,11 +1269,10 @@ static void genCpioListAndHeader(/*@partial@*/ FileList fl,
*d = '\0';
fi->bnl = xmalloc(fi->fc * (sizeof(*fi->bnl) + sizeof(*fi->dil)));
-/*@-dependenttrans@*/ /* FIX: artifact of spoofing headerGetEntry */
+/* FIX: artifact of spoofing headerGetEntry */
fi->dil = (!scareMem)
? xcalloc(sizeof(*fi->dil), fi->fc)
: (int *)(fi->bnl + fi->fc);
-/*@=dependenttrans@*/
fi->apath = xmalloc(fi->fc * sizeof(*fi->apath) + apathlen + 1);
a = (char *)(fi->apath + fi->fc);
@@ -1403,9 +1307,8 @@ static void genCpioListAndHeader(/*@partial@*/ FileList fl,
/* Create disk directory and base name. */
fi->dil[i] = i;
-/*@-dependenttrans@*/ /* FIX: artifact of spoofing headerGetEntry */
+/* FIX: artifact of spoofing headerGetEntry */
fi->dnl[fi->dil[i]] = d;
-/*@=dependenttrans@*/
d = stpcpy(d, flp->diskURL);
/* Make room for the dirName NUL, find start of baseName. */
@@ -1417,9 +1320,7 @@ static void genCpioListAndHeader(/*@partial@*/ FileList fl,
d += 2; /* skip both dirname and basename NUL's */
/* Create archive path, normally adding "./" */
- /*@-dependenttrans@*/ /* FIX: xstrdup? nah ... */
fi->apath[i] = a;
- /*@=dependenttrans@*/
if (_addDotSlash)
a = stpcpy(a, "./");
a = stpcpy(a, (flp->fileURL + skipLen));
@@ -1436,22 +1337,17 @@ static void genCpioListAndHeader(/*@partial@*/ FileList fl,
fi->fmapflags[i] |= CPIO_FOLLOW_SYMLINKS;
}
- /*@-branchstate -compdef@*/
if (fip)
*fip = fi;
else
fi = rpmfiFree(fi);
- /*@=branchstate =compdef@*/
}
}
-/*@=bounds@*/
/**
*/
-/*@-boundswrite@*/
-static /*@null@*/ FileListRec freeFileList(/*@only@*/ FileListRec fileList,
+static FileListRec freeFileList(FileListRec fileList,
int count)
- /*@*/
{
while (count--) {
fileList[count].diskURL = _free(fileList[count].diskURL);
@@ -1461,17 +1357,9 @@ static /*@null@*/ FileListRec freeFileList(/*@only@*/ FileListRec fileList,
fileList = _free(fileList);
return NULL;
}
-/*@=boundswrite@*/
/* forward ref */
-static int recurseDir(FileList fl, const char * diskURL)
- /*@globals check_fileList, rpmGlobalMacroContext, h_errno,
- fileSystem, internalState @*/
- /*@modifies *fl, fl->processingFailed,
- fl->fileList, fl->fileListRecsAlloced, fl->fileListRecsUsed,
- fl->totalFileSize, fl->fileCount, fl->inFtw, fl->isDir,
- check_fileList, rpmGlobalMacroContext,
- fileSystem, internalState @*/;
+static int recurseDir(FileList fl, const char * diskURL);
/**
* Add a file to the package manifest.
@@ -1480,16 +1368,8 @@ static int recurseDir(FileList fl, const char * diskURL)
* @param statp file stat (possibly NULL)
* @return 0 on success
*/
-/*@-boundswrite@*/
static int addFile(FileList fl, const char * diskURL,
- /*@null@*/ struct stat * statp)
- /*@globals check_fileList, rpmGlobalMacroContext, h_errno,
- fileSystem, internalState @*/
- /*@modifies *statp, *fl, fl->processingFailed,
- fl->fileList, fl->fileListRecsAlloced, fl->fileListRecsUsed,
- fl->totalFileSize, fl->fileCount,
- check_fileList, rpmGlobalMacroContext,
- fileSystem, internalState @*/
+ struct stat * statp)
{
const char *fileURL = diskURL;
struct stat statbuf;
@@ -1518,10 +1398,8 @@ static int addFile(FileList fl, const char * diskURL,
}
/* XXX make sure '/' can be packaged also */
- /*@-branchstate@*/
if (*fileURL == '\0')
fileURL = "/";
- /*@=branchstate@*/
/* If we are using a prefix, validate the file */
if (!fl->inFtw && fl->prefix) {
@@ -1565,9 +1443,8 @@ static int addFile(FileList fl, const char * diskURL,
}
if ((! fl->isDir) && S_ISDIR(statp->st_mode)) {
-/*@-nullstate@*/ /* FIX: fl->buildRootURL may be NULL */
+/* FIX: fl->buildRootURL may be NULL */
return recurseDir(fl, diskURL);
-/*@=nullstate@*/
}
fileMode = statp->st_mode;
@@ -1676,7 +1553,6 @@ static int addFile(FileList fl, const char * diskURL,
return 0;
}
-/*@=boundswrite@*/
/**
* Add directory (and all of its files) to the package manifest.
@@ -1706,11 +1582,11 @@ static int recurseDir(FileList fl, const char * diskURL)
case FTS_SLNONE: /* symbolic link without target */
case FTS_DEFAULT: /* none of the above */
rc = addFile(fl, fts->fts_accpath, fts->fts_statp);
- /*@switchbreak@*/ break;
+ break;
case FTS_DOT: /* dot or dot-dot */
case FTS_DP: /* postorder directory */
rc = 0;
- /*@switchbreak@*/ break;
+ break;
case FTS_NS: /* stat(2) failed */
case FTS_DNR: /* unreadable directory */
case FTS_ERR: /* error; errno is set */
@@ -1720,7 +1596,7 @@ static int recurseDir(FileList fl, const char * diskURL)
case FTS_W: /* whiteout object */
default:
rc = RPMERR_BADSPEC;
- /*@switchbreak@*/ break;
+ break;
}
if (rc)
break;
@@ -1743,13 +1619,6 @@ static int recurseDir(FileList fl, const char * diskURL)
*/
static int processMetadataFile(Package pkg, FileList fl, const char * fileURL,
rpmTag tag)
- /*@globals check_fileList, rpmGlobalMacroContext, h_errno,
- fileSystem, internalState @*/
- /*@modifies pkg->header, *fl, fl->processingFailed,
- fl->fileList, fl->fileListRecsAlloced, fl->fileListRecsUsed,
- fl->totalFileSize, fl->fileCount,
- check_fileList, rpmGlobalMacroContext,
- fileSystem, internalState @*/
{
const char * buildURL = "%{_builddir}/%{?buildsubdir}/";
const char * fn = NULL;
@@ -1767,13 +1636,12 @@ static int processMetadataFile(Package pkg, FileList fl, const char * fileURL,
} else
fn = rpmGenPath(buildURL, NULL, fn);
-/*@-branchstate@*/
switch (tag) {
default:
rpmError(RPMERR_BADSPEC, _("%s: can't load unknown tag (%d).\n"),
fn, tag);
goto exit;
- /*@notreached@*/ break;
+ break;
case RPMTAG_PUBKEYS:
if ((rc = pgpReadPkts(fn, (const byte **)&pkt, (size_t *)&pktlen)) <= 0) {
rpmError(RPMERR_BADSPEC, _("%s: public key read failed.\n"), fn);
@@ -1794,7 +1662,6 @@ static int processMetadataFile(Package pkg, FileList fl, const char * fileURL,
pkt = NULL;
break;
}
-/*@=branchstate@*/
xx = headerAddOrAppendEntry(pkg->header, tag,
RPM_STRING_ARRAY_TYPE, &apkt, 1);
@@ -1821,13 +1688,8 @@ exit:
* @param fileURL
* @return 0 on success
*/
-static int processBinaryFile(/*@unused@*/ Package pkg, FileList fl,
+static int processBinaryFile(Package pkg, FileList fl,
const char * fileURL)
- /*@globals rpmGlobalMacroContext, h_errno, fileSystem, internalState @*/
- /*@modifies *fl, fl->processingFailed,
- fl->fileList, fl->fileListRecsAlloced, fl->fileListRecsUsed,
- fl->totalFileSize, fl->fileCount,
- rpmGlobalMacroContext, fileSystem, internalState @*/
{
int quote = 1; /* XXX permit quoted glob characters. */
int doGlob;
@@ -1870,14 +1732,11 @@ static int processBinaryFile(/*@unused@*/ Package pkg, FileList fl,
goto exit;
}
- /*@-branchstate@*/
rc = rpmGlob(diskURL, &argc, &argv);
if (rc == 0 && argc >= 1 && !Glob_pattern_p(argv[0], quote)) {
for (i = 0; i < argc; i++) {
rc = addFile(fl, argv[i], NULL);
-/*@-boundswrite@*/
argv[i] = _free(argv[i]);
-/*@=boundswrite@*/
}
argv = _free(argv);
} else {
@@ -1886,7 +1745,6 @@ static int processBinaryFile(/*@unused@*/ Package pkg, FileList fl,
rc = 1;
goto exit;
}
- /*@=branchstate@*/
} else {
rc = addFile(fl, diskURL, NULL);
}
@@ -1902,14 +1760,8 @@ exit:
/**
*/
-/*@-boundswrite@*/
static int processPackageFiles(Spec spec, Package pkg,
int installSpecialDoc, int test)
- /*@globals rpmGlobalMacroContext, h_errno,
- fileSystem, internalState@*/
- /*@modifies spec->macros,
- pkg->cpioList, pkg->fileList, pkg->specialDoc, pkg->header,
- rpmGlobalMacroContext, fileSystem, internalState @*/
{
HGE_t hge = (HGE_t)headerGetEntryMinMemory;
struct FileList_s fl;
@@ -1947,7 +1799,7 @@ static int processPackageFiles(Spec spec, Package pkg,
}
ffn = _free(ffn);
- /*@+voidabstract@*/ f = fdGetFp(fd); /*@=voidabstract@*/
+ f = fdGetFp(fd);
if (f != NULL)
while (fgets(buf, sizeof(buf), f)) {
handleComments(buf);
@@ -2026,9 +1878,7 @@ static int processPackageFiles(Spec spec, Package pkg,
if (*s == '\0')
continue;
fileName = NULL;
- /*@-nullpass@*/ /* LCL: buf is NULL ?!? */
strcpy(buf, s);
- /*@=nullpass@*/
/* Reset for a new line in %files */
fl.isDir = 0;
@@ -2048,16 +1898,13 @@ static int processPackageFiles(Spec spec, Package pkg,
if (fl.currentLangs) {
int i;
for (i = 0; i < fl.nLangs; i++)
- /*@-unqualifiedtrans@*/
fl.currentLangs[i] = _free(fl.currentLangs[i]);
- /*@=unqualifiedtrans@*/
fl.currentLangs = _free(fl.currentLangs);
}
fl.nLangs = 0;
dupAttrRec(&fl.def_ar, &fl.cur_ar);
- /*@-nullpass@*/ /* LCL: buf is NULL ?!? */
if (parseForVerify(buf, &fl))
continue;
if (parseForAttr(buf, &fl))
@@ -2068,34 +1915,23 @@ static int processPackageFiles(Spec spec, Package pkg,
continue;
if (parseForLang(buf, &fl))
continue;
- /*@-nullstate@*/ /* FIX: pkg->fileFile might be NULL */
if (parseForSimple(spec, pkg, buf, &fl, &fileName))
- /*@=nullstate@*/
continue;
- /*@=nullpass@*/
if (fileName == NULL)
continue;
- /*@-branchstate@*/
if (fl.isSpecialDoc) {
/* Save this stuff for last */
specialDoc = _free(specialDoc);
specialDoc = xstrdup(fileName);
dupAttrRec(&fl.cur_ar, specialDocAttrRec);
} else if (fl.currentFlags & RPMFILE_PUBKEY) {
-/*@-nullstate@*/ /* FIX: pkg->fileFile might be NULL */
(void) processMetadataFile(pkg, &fl, fileName, RPMTAG_PUBKEYS);
-/*@=nullstate@*/
} else if (fl.currentFlags & RPMFILE_POLICY) {
-/*@-nullstate@*/ /* FIX: pkg->fileFile might be NULL */
(void) processMetadataFile(pkg, &fl, fileName, RPMTAG_POLICIES);
-/*@=nullstate@*/
} else {
-/*@-nullstate@*/ /* FIX: pkg->fileFile might be NULL */
(void) processBinaryFile(pkg, &fl, fileName);
-/*@=nullstate@*/
}
- /*@=branchstate@*/
}
/* Now process special doc, if there is one */
@@ -2125,9 +1961,7 @@ static int processPackageFiles(Spec spec, Package pkg,
if (fl.currentLangs) {
int i;
for (i = 0; i < fl.nLangs; i++)
- /*@-unqualifiedtrans@*/
fl.currentLangs[i] = _free(fl.currentLangs[i]);
- /*@=unqualifiedtrans@*/
fl.currentLangs = _free(fl.currentLangs);
}
fl.nLangs = 0;
@@ -2135,9 +1969,7 @@ static int processPackageFiles(Spec spec, Package pkg,
dupAttrRec(specialDocAttrRec, &fl.cur_ar);
freeAttrRec(specialDocAttrRec);
- /*@-nullstate@*/ /* FIX: pkg->fileFile might be NULL */
(void) processBinaryFile(pkg, &fl, specialDoc);
- /*@=nullstate@*/
specialDoc = _free(specialDoc);
}
@@ -2167,9 +1999,7 @@ exit:
if (fl.currentLangs) {
int i;
for (i = 0; i < fl.nLangs; i++)
- /*@-unqualifiedtrans@*/
fl.currentLangs[i] = _free(fl.currentLangs[i]);
- /*@=unqualifiedtrans@*/
fl.currentLangs = _free(fl.currentLangs);
}
@@ -2178,7 +2008,6 @@ exit:
fl.docDirs[fl.docDirCount] = _free(fl.docDirs[fl.docDirCount]);
return fl.processingFailed;
}
-/*@=boundswrite@*/
void initSourceHeader(Spec spec)
{
@@ -2188,7 +2017,6 @@ void initSourceHeader(Spec spec)
spec->sourceHeader = headerNew();
/* Only specific tags are added to the source package header */
- /*@-branchstate@*/
for (hi = headerInitIterator(spec->packages->header);
headerNextIterator(hi, &tag, &type, &ptr, &count);
ptr = headerFreeData(ptr, type))
@@ -2215,17 +2043,15 @@ void initSourceHeader(Spec spec)
case HEADER_I18NTABLE:
if (ptr)
(void)headerAddEntry(spec->sourceHeader, tag, type, ptr, count);
- /*@switchbreak@*/ break;
+ break;
default:
/* do not copy */
- /*@switchbreak@*/ break;
+ break;
}
}
hi = headerFreeIterator(hi);
- /*@=branchstate@*/
/* Add the build restrictions */
- /*@-branchstate@*/
for (hi = headerInitIterator(spec->buildRestrictions);
headerNextIterator(hi, &tag, &type, &ptr, &count);
ptr = headerFreeData(ptr, type))
@@ -2234,7 +2060,6 @@ void initSourceHeader(Spec spec)
(void) headerAddEntry(spec->sourceHeader, tag, type, ptr, count);
}
hi = headerFreeIterator(hi);
- /*@=branchstate@*/
if (spec->BANames && spec->BACount > 0) {
(void) headerAddEntry(spec->sourceHeader, RPMTAG_BUILDARCHS,
@@ -2414,12 +2239,8 @@ int processSourceFiles(Spec spec)
* @return -1 if skipped, 0 on OK, 1 on error
*/
static int checkFiles(StringBuf fileList)
- /*@globals rpmGlobalMacroContext, h_errno, fileSystem, internalState @*/
- /*@modifies rpmGlobalMacroContext, fileSystem, internalState @*/
{
-/*@-readonlytrans@*/
static const char * av_ckfile[] = { "%{?__check_files}", NULL };
-/*@=readonlytrans@*/
StringBuf sb_stdout = NULL;
const char * s;
int rc;
@@ -2433,9 +2254,7 @@ static int checkFiles(StringBuf fileList)
rpmMessage(RPMMESS_NORMAL, _("Checking for unpackaged file(s): %s\n"), s);
-/*@-boundswrite@*/
rc = rpmfcExec(av_ckfile, fileList, &sb_stdout, 0);
-/*@=boundswrite@*/
if (rc < 0)
goto exit;
@@ -2458,10 +2277,7 @@ exit:
return rc;
}
-/*@-incondefs@*/
int processBinaryFiles(Spec spec, int installSpecialDoc, int test)
- /*@globals check_fileList @*/
- /*@modifies check_fileList @*/
{
Package pkg;
int res = 0;
@@ -2500,4 +2316,3 @@ int processBinaryFiles(Spec spec, int installSpecialDoc, int test)
return res;
}
-/*@=incondefs@*/
diff --git a/build/misc.c b/build/misc.c
index e14f75d8d..05e08067e 100644
--- a/build/misc.c
+++ b/build/misc.c
@@ -6,7 +6,6 @@
#include "rpmbuild.h"
#include "debug.h"
-/*@-boundswrite@*/
int parseNum(const char * line, int * res)
{
char * s1 = NULL;
@@ -17,4 +16,3 @@ int parseNum(const char * line, int * res)
if (res) *res = rc;
return (((*s1) || (s1 == line) || (rc == ULONG_MAX)) ? 1 : 0);
}
-/*@=boundswrite@*/
diff --git a/build/names.c b/build/names.c
index 5ddcad97f..87c9465bc 100644
--- a/build/names.c
+++ b/build/names.c
@@ -1,4 +1,3 @@
-/*@-mods@*/
/** \ingroup rpmbuild
* \file build/names.c
* Simple user/group name/id cache (plus hostname and buildtime)
@@ -10,23 +9,16 @@
#include "rpmbuild.h"
#include "debug.h"
-typedef /*@owned@*/ /*@null@*/ const char * ugstr_t;
+typedef const char * ugstr_t;
-/*@unchecked@*/
static uid_t uids[1024];
-/*@unchecked@*/
static ugstr_t unames[1024];
-/*@unchecked@*/
static int uid_used = 0;
-/*@unchecked@*/
static gid_t gids[1024];
-/*@unchecked@*/
static ugstr_t gnames[1024];
-/*@unchecked@*/
static int gid_used = 0;
-/*@-boundswrite@*/
void freeNames(void)
{
int x;
@@ -35,12 +27,8 @@ void freeNames(void)
for (x = 0; x < gid_used; x++)
gnames[x] = _free(gnames[x]);
}
-/*@=boundswrite@*/
-/*@-boundswrite@*/
const char *getUname(uid_t uid)
- /*@globals uid_used, uids, unames @*/
- /*@modifies uid_used, uids, unames @*/
{
struct passwd *pw;
int x;
@@ -61,12 +49,8 @@ const char *getUname(uid_t uid)
unames[uid_used] = xstrdup(pw->pw_name);
return unames[uid_used++];
}
-/*@=boundswrite@*/
-/*@-boundswrite@*/
const char *getUnameS(const char *uname)
- /*@globals uid_used, uids, unames @*/
- /*@modifies uid_used, uids, unames @*/
{
struct passwd *pw;
int x;
@@ -90,12 +74,8 @@ const char *getUnameS(const char *uname)
}
return unames[uid_used++];
}
-/*@=boundswrite@*/
-/*@-boundswrite@*/
uid_t getUidS(const char *uname)
- /*@globals uid_used, uids, unames @*/
- /*@modifies uid_used, uids, unames @*/
{
struct passwd *pw;
int x;
@@ -119,12 +99,8 @@ uid_t getUidS(const char *uname)
}
return uids[uid_used++];
}
-/*@=boundswrite@*/
-/*@-boundswrite@*/
const char *getGname(gid_t gid)
- /*@globals gid_used, gids, gnames @*/
- /*@modifies gid_used, gids, gnames @*/
{
struct group *gr;
int x;
@@ -145,12 +121,8 @@ const char *getGname(gid_t gid)
gnames[gid_used] = xstrdup(gr->gr_name);
return gnames[gid_used++];
}
-/*@=boundswrite@*/
-/*@-boundswrite@*/
const char *getGnameS(const char *gname)
- /*@globals gid_used, gids, gnames @*/
- /*@modifies gid_used, gids, gnames @*/
{
struct group *gr;
int x;
@@ -174,12 +146,8 @@ const char *getGnameS(const char *gname)
}
return gnames[gid_used++];
}
-/*@=boundswrite@*/
-/*@-boundswrite@*/
gid_t getGidS(const char *gname)
- /*@globals gid_used, gids, gnames @*/
- /*@modifies gid_used, gids, gnames @*/
{
struct group *gr;
int x;
@@ -203,20 +171,16 @@ gid_t getGidS(const char *gname)
}
return gids[gid_used++];
}
-/*@=boundswrite@*/
int_32 * getBuildTime(void)
{
static int_32 buildTime[1];
-/*@-boundsread@*/
if (buildTime[0] == 0)
buildTime[0] = (int_32) time(NULL);
-/*@=boundsread@*/
return buildTime;
}
-/*@-boundswrite@*/
const char * buildHost(void)
{
static char hostname[1024];
@@ -225,11 +189,7 @@ const char * buildHost(void)
if (! oneshot) {
(void) gethostname(hostname, sizeof(hostname));
- /*@-unrecog -multithreaded @*/
- /*@-globs@*/ /* FIX: h_errno access */
hbn = gethostbyname(hostname);
- /*@=globs@*/
- /*@=unrecog =multithreaded @*/
if (hbn)
strcpy(hostname, hbn->h_name);
else
@@ -239,5 +199,3 @@ const char * buildHost(void)
}
return(hostname);
}
-/*@=boundswrite@*/
-/*@=mods@*/
diff --git a/build/pack.c b/build/pack.c
index fa32c1b09..981b35004 100644
--- a/build/pack.c
+++ b/build/pack.c
@@ -25,17 +25,9 @@
#include "rpmlead.h"
#include "debug.h"
-/*@access rpmts @*/
-/*@access rpmfi @*/ /* compared with NULL */
-/*@access Header @*/ /* compared with NULL */
-/*@access FD_t @*/ /* compared with NULL */
-/*@access StringBuf @*/ /* compared with NULL */
-/*@access CSA_t @*/
-
/**
*/
static inline int genSourceRpmName(Spec spec)
- /*@modifies spec->sourceRpmName @*/
{
if (spec->sourceRpmName == NULL) {
const char *name, *version, *release;
@@ -53,11 +45,8 @@ static inline int genSourceRpmName(Spec spec)
/**
* @todo Create transaction set *much* earlier.
*/
-static int cpio_doio(FD_t fdo, /*@unused@*/ Header h, CSA_t csa,
+static int cpio_doio(FD_t fdo, Header h, CSA_t csa,
const char * fmodeMacro)
- /*@globals rpmGlobalMacroContext, h_errno, fileSystem, internalState @*/
- /*@modifies fdo, csa, rpmGlobalMacroContext,
- fileSystem, internalState @*/
{
rpmts ts = rpmtsCreate();
rpmfi fi = csa->cpioList;
@@ -65,17 +54,13 @@ static int cpio_doio(FD_t fdo, /*@unused@*/ Header h, CSA_t csa,
FD_t cfd;
int rc, ec;
-/*@-boundsread@*/
{ const char *fmode = rpmExpand(fmodeMacro, NULL);
if (!(fmode && fmode[0] == 'w'))
fmode = xstrdup("w9.gzdio");
- /*@-nullpass@*/
(void) Fflush(fdo);
cfd = Fdopen(fdDup(Fileno(fdo)), fmode);
- /*@=nullpass@*/
fmode = _free(fmode);
}
-/*@=boundsread@*/
if (cfd == NULL)
return 1;
@@ -104,8 +89,6 @@ static int cpio_doio(FD_t fdo, /*@unused@*/ Header h, CSA_t csa,
/**
*/
static int cpio_copy(FD_t fdo, CSA_t csa)
- /*@globals fileSystem, internalState @*/
- /*@modifies fdo, csa, fileSystem, internalState @*/
{
char buf[BUFSIZ];
size_t nb;
@@ -128,10 +111,8 @@ static int cpio_copy(FD_t fdo, CSA_t csa)
/**
*/
-static /*@only@*/ /*@null@*/ StringBuf addFileToTagAux(Spec spec,
- const char * file, /*@only@*/ StringBuf sb)
- /*@globals rpmGlobalMacroContext, h_errno, fileSystem, internalState @*/
- /*@modifies rpmGlobalMacroContext, fileSystem, internalState @*/
+static StringBuf addFileToTagAux(Spec spec,
+ const char * file, StringBuf sb)
{
char buf[BUFSIZ];
const char * fn = buf;
@@ -146,9 +127,8 @@ static /*@only@*/ /*@null@*/ StringBuf addFileToTagAux(Spec spec,
sb = freeStringBuf(sb);
return NULL;
}
- /*@-type@*/ /* FIX: cast? */
+ /* FIX: cast? */
if ((f = fdGetFp(fd)) != NULL)
- /*@=type@*/
while (fgets(buf, sizeof(buf), f)) {
/* XXX display fn in error msg */
if (expandMacros(spec, spec->macros, buf, sizeof(buf))) {
@@ -166,8 +146,6 @@ static /*@only@*/ /*@null@*/ StringBuf addFileToTagAux(Spec spec,
/**
*/
static int addFileToTag(Spec spec, const char * file, Header h, int tag)
- /*@globals rpmGlobalMacroContext, h_errno, fileSystem, internalState @*/
- /*@modifies h, rpmGlobalMacroContext, fileSystem, internalState @*/
{
HGE_t hge = (HGE_t)headerGetEntryMinMemory;
StringBuf sb = newStringBuf();
@@ -190,8 +168,6 @@ static int addFileToTag(Spec spec, const char * file, Header h, int tag)
/**
*/
static int addFileToArrayTag(Spec spec, const char *file, Header h, int tag)
- /*@globals rpmGlobalMacroContext, h_errno, fileSystem, internalState @*/
- /*@modifies h, rpmGlobalMacroContext, fileSystem, internalState @*/
{
StringBuf sb = newStringBuf();
char *s;
@@ -209,9 +185,6 @@ static int addFileToArrayTag(Spec spec, const char *file, Header h, int tag)
/**
*/
static int processScriptFiles(Spec spec, Package pkg)
- /*@globals rpmGlobalMacroContext, h_errno, fileSystem, internalState @*/
- /*@modifies pkg->header, rpmGlobalMacroContext,
- fileSystem, internalState @*/
{
struct TriggerFileEntry *p;
@@ -292,7 +265,6 @@ static int processScriptFiles(Spec spec, Package pkg)
return 0;
}
-/*@-boundswrite@*/
int readRPM(const char *fileName, Spec *specp, struct rpmlead *lead,
Header *sigs, CSA_t csa)
{
@@ -313,14 +285,12 @@ int readRPM(const char *fileName, Spec *specp, struct rpmlead *lead,
}
/* Get copy of lead */
- /*@-sizeoftype@*/
if ((rc = Fread(lead, sizeof(char), sizeof(*lead), fdi)) != sizeof(*lead)) {
rpmError(RPMERR_BADMAGIC, _("readRPM: read %s: %s\n"),
(fileName ? fileName : "<stdin>"),
Fstrerror(fdi));
return RPMERR_BADMAGIC;
}
- /*@=sizeoftype@*/
/* XXX FIXME: EPIPE on <stdin> */
if (Fseek(fdi, 0, SEEK_SET) == -1) {
@@ -340,10 +310,9 @@ int readRPM(const char *fileName, Spec *specp, struct rpmlead *lead,
{ rpmts ts = rpmtsCreate();
/* XXX W2DO? pass fileName? */
- /*@-mustmod@*/ /* LCL: segfault */
+ /* LCL: segfault */
rc = rpmReadPackageFile(ts, fdi, "readRPM",
&spec->packages->header);
- /*@=mustmod@*/
ts = rpmtsFree(ts);
@@ -364,15 +333,13 @@ int readRPM(const char *fileName, Spec *specp, struct rpmlead *lead,
rpmError(RPMERR_BADMAGIC, _("readRPM: reading header from %s\n"),
(fileName ? fileName : "<stdin>"));
return RPMERR_BADMAGIC;
- /*@notreached@*/ break;
+ break;
}
- /*@-branchstate@*/
if (specp)
*specp = spec;
else
spec = freeSpec(spec);
- /*@=branchstate@*/
if (csa != NULL)
csa->cpioFdIn = fdi;
@@ -381,10 +348,8 @@ int readRPM(const char *fileName, Spec *specp, struct rpmlead *lead,
return 0;
}
-/*@=boundswrite@*/
#ifdef DYING
-/*@unchecked@*/
static unsigned char header_magic[8] = {
0x8e, 0xad, 0xe8, 0x01, 0x00, 0x00, 0x00, 0x00
};
@@ -392,12 +357,9 @@ static unsigned char header_magic[8] = {
#define RPMPKGVERSION_MIN 30004
#define RPMPKGVERSION_MAX 40003
-/*@unchecked@*/
static int rpmpkg_version = -1;
static int rpmLeadVersion(void)
- /*@globals rpmpkg_version, rpmGlobalMacroContext, h_errno @*/
- /*@modifies rpmpkg_version, rpmGlobalMacroContext @*/
{
int rpmlead_version;
@@ -416,7 +378,6 @@ static int rpmLeadVersion(void)
return rpmlead_version;
}
-/*@-boundswrite@*/
int writeRPM(Header *hdrp, unsigned char ** pkgidp, const char *fileName,
int type, CSA_t csa, char *passPhrase, const char **cookie)
{
@@ -453,7 +414,6 @@ int writeRPM(Header *hdrp, unsigned char ** pkgidp, const char *fileName,
providePackageNVR(h);
/* Save payload information */
- /*@-branchstate@*/
switch(type) {
case RPMLEAD_SOURCE:
rpmio_flags = rpmExpand("%{?_source_payload}", NULL);
@@ -462,7 +422,6 @@ int writeRPM(Header *hdrp, unsigned char ** pkgidp, const char *fileName,
rpmio_flags = rpmExpand("%{?_binary_payload}", NULL);
break;
}
- /*@=branchstate@*/
if (!(rpmio_flags && *rpmio_flags)) {
rpmio_flags = _free(rpmio_flags);
rpmio_flags = xstrdup("w9.gzdio");
@@ -741,9 +700,7 @@ exit:
return rc;
}
-/*@=boundswrite@*/
-/*@unchecked@*/
static int_32 copyTags[] = {
RPMTAG_CHANGELOGTIME,
RPMTAG_CHANGELOGNAME,
@@ -751,7 +708,6 @@ static int_32 copyTags[] = {
0
};
-/*@-boundswrite@*/
int packageBinaries(Spec spec)
{
struct cpioSourceArchive_s csabuf;
@@ -822,12 +778,11 @@ int packageBinaries(Spec spec)
switch(errno) {
case ENOENT:
if (Mkdir(dn, 0755) == 0)
- /*@switchbreak@*/ break;
- /*@fallthrough@*/
+ break;
default:
rpmError(RPMERR_BADFILENAME,_("cannot create %s: %s\n"),
dn, strerror(errno));
- /*@switchbreak@*/ break;
+ break;
}
}
dn = _free(dn);
@@ -837,18 +792,15 @@ int packageBinaries(Spec spec)
memset(csa, 0, sizeof(*csa));
csa->cpioArchiveSize = 0;
- /*@-type@*/ /* LCL: function typedefs */
+ /* LCL: function typedefs */
csa->cpioFdIn = fdNew("init (packageBinaries)");
- /*@-assignexpose -newreftrans@*/
csa->cpioList = rpmfiLink(pkg->cpioList, "packageBinaries");
- /*@=assignexpose =newreftrans@*/
rc = writeRPM(&pkg->header, NULL, fn, RPMLEAD_BINARY,
csa, spec->passPhrase, NULL);
csa->cpioList = rpmfiFree(csa->cpioList);
csa->cpioFdIn = fdFree(csa->cpioFdIn, "init (packageBinaries)");
- /*@=type@*/
fn = _free(fn);
if (rc)
return rc;
@@ -856,9 +808,7 @@ int packageBinaries(Spec spec)
return 0;
}
-/*@=boundswrite@*/
-/*@-boundswrite@*/
int packageSources(Spec spec)
{
struct cpioSourceArchive_s csabuf;
@@ -882,11 +832,9 @@ int packageSources(Spec spec)
memset(csa, 0, sizeof(*csa));
csa->cpioArchiveSize = 0;
- /*@-type@*/ /* LCL: function typedefs */
+ /* LCL: function typedefs */
csa->cpioFdIn = fdNew("init (packageSources)");
- /*@-assignexpose -newreftrans@*/
csa->cpioList = rpmfiLink(spec->sourceCpioList, "packageSources");
- /*@=assignexpose =newreftrans@*/
spec->sourcePkgId = NULL;
rc = writeRPM(&spec->sourceHeader, &spec->sourcePkgId, fn, RPMLEAD_SOURCE,
@@ -894,9 +842,7 @@ int packageSources(Spec spec)
csa->cpioList = rpmfiFree(csa->cpioList);
csa->cpioFdIn = fdFree(csa->cpioFdIn, "init (packageSources)");
- /*@=type@*/
fn = _free(fn);
}
return rc;
}
-/*@=boundswrite@*/
diff --git a/build/parseBuildInstallClean.c b/build/parseBuildInstallClean.c
index f086f7c17..148be463e 100644
--- a/build/parseBuildInstallClean.c
+++ b/build/parseBuildInstallClean.c
@@ -7,16 +7,13 @@
#include "rpmbuild.h"
#include "debug.h"
-/*@access StringBuf @*/
-/*@-boundswrite@*/
int parseBuildInstallClean(Spec spec, rpmParseState parsePart)
{
int nextPart, rc;
StringBuf *sbp = NULL;
const char *name = NULL;
- /*@-branchstate@*/
if (parsePart == PART_BUILD) {
sbp = &(spec->build);
name = "%build";
@@ -30,7 +27,6 @@ int parseBuildInstallClean(Spec spec, rpmParseState parsePart)
sbp = &(spec->clean);
name = "%clean";
}
- /*@=branchstate@*/
if (*sbp != NULL) {
rpmError(RPMERR_BADSPEC, _("line %d: second %s\n"),
@@ -56,4 +52,3 @@ int parseBuildInstallClean(Spec spec, rpmParseState parsePart)
return nextPart;
}
-/*@=boundswrite@*/
diff --git a/build/parseChangelog.c b/build/parseChangelog.c
index 6ba8a2814..1f0df48ce 100644
--- a/build/parseChangelog.c
+++ b/build/parseChangelog.c
@@ -34,19 +34,17 @@ void addChangelogEntry(Header h, time_t time, const char *name, const char *text
* @retval secs secs since the unix epoch
* @return 0 on success, -1 on error
*/
-/*@-boundswrite@*/
-static int dateToTimet(const char * datestr, /*@out@*/ time_t * secs)
- /*@modifies *secs @*/
+static int dateToTimet(const char * datestr, time_t * secs)
{
struct tm time;
char * p, * pe, * q, ** idx;
char * date = strcpy(alloca(strlen(datestr) + 1), datestr);
-/*@observer@*/ static char * days[] =
+static char * days[] =
{ "Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat", NULL };
-/*@observer@*/ static char * months[] =
+static char * months[] =
{ "Jan", "Feb", "Mar", "Apr", "May", "Jun",
"Jul", "Aug", "Sep", "Oct", "Nov", "Dec", NULL };
-/*@observer@*/ static char lengths[] =
+static char lengths[] =
{ 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
memset(&time, 0, sizeof(time));
@@ -99,7 +97,6 @@ static int dateToTimet(const char * datestr, /*@out@*/ time_t * secs)
return 0;
}
-/*@=boundswrite@*/
/**
* Add %changelog section to header.
@@ -107,9 +104,7 @@ static int dateToTimet(const char * datestr, /*@out@*/ time_t * secs)
* @param sb changelog strings
* @return 0 on success
*/
-/*@-boundswrite@*/
static int addChangelog(Header h, StringBuf sb)
- /*@modifies h @*/
{
char *s;
int i;
@@ -136,9 +131,7 @@ static int addChangelog(Header h, StringBuf sb)
rpmError(RPMERR_BADSPEC, _("incomplete %%changelog entry\n"));
return RPMERR_BADSPEC;
}
- /*@-modobserver@*/
*s = '\0';
- /*@=modobserver@*/
text = s + 1;
/* 4 fields of date */
@@ -204,7 +197,6 @@ static int addChangelog(Header h, StringBuf sb)
return 0;
}
-/*@=boundswrite@*/
int parseChangelog(Spec spec)
{
diff --git a/build/parseDescription.c b/build/parseDescription.c
index e76666b36..19198f5df 100644
--- a/build/parseDescription.c
+++ b/build/parseDescription.c
@@ -8,18 +8,12 @@
#include "rpmbuild.h"
#include "debug.h"
-/*@-exportheadervar@*/
-/*@unchecked@*/
extern int noLang;
-/*@=exportheadervar@*/
/* These have to be global scope to make up for *stupid* compilers */
-/*@unchecked@*/
- /*@observer@*/ /*@null@*/ static const char *name = NULL;
-/*@unchecked@*/
- /*@observer@*/ /*@null@*/ static const char *lang = NULL;
+ static const char *name = NULL;
+ static const char *lang = NULL;
-/*@unchecked@*/
static struct poptOption optionsTable[] = {
{ NULL, 'n', POPT_ARG_STRING, &name, 'n', NULL, NULL},
{ NULL, 'l', POPT_ARG_STRING, &lang, 'l', NULL, NULL},
@@ -27,8 +21,6 @@ extern int noLang;
};
int parseDescription(Spec spec)
- /*@globals name, lang @*/
- /*@modifies name, lang @*/
{
int nextPart = RPMERR_BADSPEC; /* assume error */
StringBuf sb;
diff --git a/build/parseFiles.c b/build/parseFiles.c
index 759fc0ca6..f4271a18a 100644
--- a/build/parseFiles.c
+++ b/build/parseFiles.c
@@ -8,15 +8,9 @@
#include "rpmbuild.h"
#include "debug.h"
-/*@access StringBuf @*/ /* compared with NULL */
-/*@access poptContext @*/ /* compared with NULL */
-
/* These have to be global scope to make up for *stupid* compilers */
-/*@unchecked@*/
- /*@observer@*/ /*@null@*/ static const char *name = NULL;
-/*@unchecked@*/
- /*@observer@*/ /*@null@*/ static const char *file = NULL;
-/*@unchecked@*/
+ static const char *name = NULL;
+ static const char *file = NULL;
static struct poptOption optionsTable[] = {
{ NULL, 'n', POPT_ARG_STRING, &name, 'n', NULL, NULL},
{ NULL, 'f', POPT_ARG_STRING, &file, 'f', NULL, NULL},
@@ -33,10 +27,8 @@ int parseFiles(Spec spec)
int flag = PART_SUBNAME;
poptContext optCon = NULL;
- /*@-mods@*/
name = NULL;
file = NULL;
- /*@=mods@*/
if ((rc = poptParseArgvString(spec->line, &argc, &argv))) {
rpmError(RPMERR_BADSPEC, _("line %d: Error parsing %%files: %s\n"),
@@ -62,10 +54,8 @@ int parseFiles(Spec spec)
}
if (poptPeekArg(optCon)) {
- /*@-mods@*/
if (name == NULL)
name = poptGetArg(optCon);
- /*@=mods@*/
if (poptPeekArg(optCon)) {
rpmError(RPMERR_BADSPEC, _("line %d: Too many names: %s\n"),
spec->lineNum,
diff --git a/build/parsePreamble.c b/build/parsePreamble.c
index cc8aaeeb3..34098ef90 100644
--- a/build/parsePreamble.c
+++ b/build/parsePreamble.c
@@ -9,11 +9,8 @@
#include <rpmbuild.h>
#include "debug.h"
-/*@access FD_t @*/ /* compared with NULL */
-
/**
*/
-/*@observer@*/ /*@unchecked@*/
static rpmTag copyTagsDuringParse[] = {
RPMTAG_EPOCH,
RPMTAG_VERSION,
@@ -37,7 +34,6 @@ static rpmTag copyTagsDuringParse[] = {
/**
*/
-/*@observer@*/ /*@unchecked@*/
static rpmTag requiredTags[] = {
RPMTAG_NAME,
RPMTAG_VERSION,
@@ -51,7 +47,6 @@ static rpmTag requiredTags[] = {
/**
*/
static void addOrAppendListEntry(Header h, int_32 tag, char * line)
- /*@modifies h @*/
{
int xx;
int argc;
@@ -68,10 +63,7 @@ static void addOrAppendListEntry(Header h, int_32 tag, char * line)
/**
*/
-/*@-boundswrite@*/
-static int parseSimplePart(char *line, /*@out@*/char **name, /*@out@*/int *flag)
- /*@globals internalState@*/
- /*@modifies *name, *flag, internalState @*/
+static int parseSimplePart(char *line,char **name,int *flag)
{
char *tok;
char linebuf[BUFSIZ];
@@ -99,12 +91,10 @@ static int parseSimplePart(char *line, /*@out@*/char **name, /*@out@*/int *flag)
return (strtok(NULL, " \t\n")) ? 1 : 0;
}
-/*@=boundswrite@*/
/**
*/
static inline int parseYesNo(const char * s)
- /*@*/
{
return ((!s || (s[0] == 'n' || s[0] == 'N' || s[0] == '0') ||
!xstrcasecmp(s, "false") || !xstrcasecmp(s, "off"))
@@ -112,14 +102,12 @@ static inline int parseYesNo(const char * s)
}
typedef struct tokenBits_s {
-/*@observer@*/ /*@null@*/
const char * name;
rpmsenseFlags bits;
} * tokenBits;
/**
*/
-/*@observer@*/ /*@unchecked@*/
static struct tokenBits_s installScriptBits[] = {
{ "interp", RPMSENSE_INTERP },
{ "prereq", RPMSENSE_PREREQ },
@@ -134,7 +122,6 @@ static struct tokenBits_s installScriptBits[] = {
/**
*/
-/*@observer@*/ /*@unchecked@*/
static struct tokenBits_s buildScriptBits[] = {
{ "prep", RPMSENSE_SCRIPT_PREP },
{ "build", RPMSENSE_SCRIPT_BUILD },
@@ -145,10 +132,8 @@ static struct tokenBits_s buildScriptBits[] = {
/**
*/
-/*@-boundswrite@*/
static int parseBits(const char * s, const tokenBits tokbits,
- /*@out@*/ rpmsenseFlags * bp)
- /*@modifies *bp @*/
+ rpmsenseFlags * bp)
{
tokenBits tb;
const char * se;
@@ -165,7 +150,7 @@ static int parseBits(const char * s, const tokenBits tokbits,
for (tb = tokbits; tb->name; tb++) {
if (tb->name != NULL &&
strlen(tb->name) == (se-s) && !strncmp(tb->name, s, (se-s)))
- /*@innerbreak@*/ break;
+ break;
}
if (tb->name == NULL)
break;
@@ -179,32 +164,25 @@ static int parseBits(const char * s, const tokenBits tokbits,
if (c == 0 && bp) *bp = bits;
return (c ? RPMERR_BADSPEC : 0);
}
-/*@=boundswrite@*/
/**
*/
static inline char * findLastChar(char * s)
- /*@*/
{
char *res = s;
-/*@-boundsread@*/
while (*s != '\0') {
if (! xisspace(*s))
res = s;
s++;
}
-/*@=boundsread@*/
- /*@-temptrans -retalias@*/
return res;
- /*@=temptrans =retalias@*/
}
/**
*/
static int isMemberInEntry(Header h, const char *name, rpmTag tag)
- /*@*/
{
HGE_t hge = (HGE_t)headerGetEntryMinMemory;
HFD_t hfd = headerFreeData;
@@ -214,20 +192,17 @@ static int isMemberInEntry(Header h, const char *name, rpmTag tag)
if (!hge(h, tag, &type, (void **)&names, &count))
return -1;
-/*@-boundsread@*/
while (count--) {
if (!xstrcasecmp(names[count], name))
break;
}
names = hfd(names, type);
-/*@=boundsread@*/
return (count >= 0 ? 1 : 0);
}
/**
*/
static int checkForValidArchitectures(Spec spec)
- /*@*/
{
#ifndef DYING
const char *arch = NULL;
@@ -271,12 +246,11 @@ static int checkForValidArchitectures(Spec spec)
* @return 0 if OK
*/
static int checkForRequired(Header h, const char * NVR)
- /*@modifies h @*/ /* LCL: parse error here with modifies */
+ /* LCL: parse error here with modifies */
{
int res = 0;
rpmTag * p;
-/*@-boundsread@*/
for (p = requiredTags; *p != 0; p++) {
if (!headerIsEntry(h, *p)) {
rpmError(RPMERR_BADSPEC,
@@ -285,7 +259,6 @@ static int checkForRequired(Header h, const char * NVR)
res = 1;
}
}
-/*@=boundsread@*/
return res;
}
@@ -297,7 +270,6 @@ static int checkForRequired(Header h, const char * NVR)
* @return 0 if OK
*/
static int checkForDuplicates(Header h, const char * NVR)
- /*@modifies h @*/
{
int res = 0;
int lastTag, tag;
@@ -320,10 +292,8 @@ static int checkForDuplicates(Header h, const char * NVR)
/**
*/
-/*@observer@*/ /*@unchecked@*/
static struct optionalTag {
rpmTag ot_tag;
-/*@observer@*/ /*@null@*/
const char * ot_mac;
} optionalTags[] = {
{ RPMTAG_VENDOR, "%{vendor}" },
@@ -336,29 +306,22 @@ static struct optionalTag {
/**
*/
static void fillOutMainPackage(Header h)
- /*@globals rpmGlobalMacroContext, h_errno @*/
- /*@modifies h, rpmGlobalMacroContext @*/
{
struct optionalTag *ot;
for (ot = optionalTags; ot->ot_mac != NULL; ot++) {
if (!headerIsEntry(h, ot->ot_tag)) {
-/*@-boundsread@*/
const char *val = rpmExpand(ot->ot_mac, NULL);
if (val && *val != '%')
(void) headerAddEntry(h, ot->ot_tag, RPM_STRING_TYPE, (void *)val, 1);
val = _free(val);
-/*@=boundsread@*/
}
}
}
/**
*/
-/*@-boundswrite@*/
static int readIcon(Header h, const char * file)
- /*@globals rpmGlobalMacroContext, h_errno, fileSystem, internalState @*/
- /*@modifies h, rpmGlobalMacroContext, fileSystem, internalState @*/
{
const char *fn = NULL;
char *icon;
@@ -413,7 +376,6 @@ exit:
fn = _free(fn);
return rc;
}
-/*@=boundswrite@*/
spectag stashSt(Spec spec, Header h, int tag, const char * lang)
{
@@ -441,9 +403,7 @@ spectag stashSt(Spec spec, Header h, int tag, const char * lang)
}
}
}
- /*@-usereleased -compdef@*/
return t;
- /*@=usereleased =compdef@*/
}
#define SINGLE_TOKEN_ONLY \
@@ -453,22 +413,12 @@ if (multiToken) { \
return RPMERR_BADSPEC; \
}
-/*@-redecl@*/
extern int noLang;
-/*@=redecl@*/
/**
*/
-/*@-boundswrite@*/
static int handlePreambleTag(Spec spec, Package pkg, rpmTag tag,
const char *macro, const char *lang)
- /*@globals rpmGlobalMacroContext, h_errno, fileSystem, internalState @*/
- /*@modifies spec->macros, spec->st, spec->buildRootURL,
- spec->sources, spec->numSources, spec->noSource,
- spec->buildRestrictions, spec->BANames, spec->BACount,
- spec->line, spec->gotBuildRootURL,
- pkg->header, pkg->autoProv, pkg->autoReq, pkg->icon,
- rpmGlobalMacroContext, fileSystem, internalState @*/
{
HGE_t hge = (HGE_t)headerGetEntryMinMemory;
HFD_t hfd = headerFreeData;
@@ -539,7 +489,6 @@ static int handlePreambleTag(Spec spec, Package pkg, rpmTag tag,
case RPMTAG_GROUP:
case RPMTAG_SUMMARY:
(void) stashSt(spec, pkg->header, tag, lang);
- /*@fallthrough@*/
case RPMTAG_DISTRIBUTION:
case RPMTAG_VENDOR:
case RPMTAG_LICENSE:
@@ -571,9 +520,7 @@ static int handlePreambleTag(Spec spec, Package pkg, rpmTag tag,
buildRootURL = _free(buildRootURL);
(void) urlPath(specURL, (const char **)&field);
- /*@-branchstate@*/
if (*field == '\0') field = "/";
- /*@=branchstate@*/
buildRootURL = rpmGenPath(spec->rootURL, field, NULL);
spec->buildRootURL = buildRootURL;
field = (char *) buildRootURL;
@@ -584,9 +531,7 @@ static int handlePreambleTag(Spec spec, Package pkg, rpmTag tag,
}
buildRootURL = rpmGenPath(NULL, spec->buildRootURL, NULL);
(void) urlPath(buildRootURL, &buildRoot);
- /*@-branchstate@*/
if (*buildRoot == '\0') buildRoot = "/";
- /*@=branchstate@*/
if (!strcmp(buildRoot, "/")) {
rpmError(RPMERR_BADSPEC,
_("BuildRoot can not be \"/\": %s\n"), spec->buildRootURL);
@@ -721,7 +666,6 @@ static int handlePreambleTag(Spec spec, Package pkg, rpmTag tag,
return 0;
}
-/*@=boundswrite@*/
/* This table has to be in a peculiar order. If one tag is the */
/* same as another, plus a few letters, it must come first. */
@@ -733,11 +677,9 @@ typedef struct PreambleRec_s {
int len;
int multiLang;
int obsolete;
-/*@observer@*/ /*@null@*/
const char * token;
} * PreambleRec;
-/*@unchecked@*/
static struct PreambleRec_s preambleList[] = {
{RPMTAG_NAME, 0, 0, 0, "name"},
{RPMTAG_VERSION, 0, 0, 0, "version"},
@@ -783,16 +725,13 @@ static struct PreambleRec_s preambleList[] = {
{RPMTAG_DISTTAG, 0, 0, 0, "disttag"},
{RPMTAG_CVSID, 0, 0, 0, "cvsid"},
{RPMTAG_SVNID, 0, 0, 0, "svnid"},
- /*@-nullassign@*/ /* LCL: can't add null annotation */
+ /* LCL: can't add null annotation */
{0, 0, 0, 0, 0}
- /*@=nullassign@*/
};
/**
*/
static inline void initPreambleList(void)
- /*@globals preambleList @*/
- /*@modifies preambleList @*/
{
PreambleRec p;
for (p = preambleList; p->token != NULL; p++)
@@ -801,10 +740,8 @@ static inline void initPreambleList(void)
/**
*/
-/*@-boundswrite@*/
-static int findPreambleTag(Spec spec, /*@out@*/rpmTag * tag,
- /*@null@*/ /*@out@*/ const char ** macro, /*@out@*/ char * lang)
- /*@modifies *tag, *macro, *lang @*/
+static int findPreambleTag(Spec spec,rpmTag * tag,
+ const char ** macro, char * lang)
{
PreambleRec p;
char *s;
@@ -858,14 +795,10 @@ static int findPreambleTag(Spec spec, /*@out@*/rpmTag * tag,
*tag = p->tag;
if (macro)
- /*@-onlytrans -observertrans -dependenttrans@*/ /* FIX: double indirection. */
*macro = p->token;
- /*@=onlytrans =observertrans =dependenttrans@*/
return 0;
}
-/*@=boundswrite@*/
-/*@-boundswrite@*/
int parsePreamble(Spec spec, int initialPackage)
{
int nextPart;
@@ -963,4 +896,3 @@ int parsePreamble(Spec spec, int initialPackage)
return nextPart;
}
-/*@=boundswrite@*/
diff --git a/build/parsePrep.c b/build/parsePrep.c
index 74a6d6dc8..d2d5d3ce4 100644
--- a/build/parsePrep.c
+++ b/build/parsePrep.c
@@ -9,17 +9,11 @@
#include <rpmbuild.h>
#include "debug.h"
-/*@access StringBuf @*/ /* compared with NULL */
-
/* These have to be global to make up for stupid compilers */
-/*@unchecked@*/
static int leaveDirs, skipDefaultAction;
-/*@unchecked@*/
static int createDir, quietly;
-/*@unchecked@*/
-/*@observer@*/ /*@null@*/ static const char * dirName = NULL;
-/*@unchecked@*/
-/*@observer@*/ static struct poptOption optionsTable[] = {
+static const char * dirName = NULL;
+static struct poptOption optionsTable[] = {
{ NULL, 'a', POPT_ARG_STRING, NULL, 'a', NULL, NULL},
{ NULL, 'b', POPT_ARG_STRING, NULL, 'b', NULL, NULL},
{ NULL, 'c', 0, &createDir, 0, NULL, NULL},
@@ -36,8 +30,6 @@
* @return 0 on success
*/
static int checkOwners(const char * urlfn)
- /*@globals h_errno, fileSystem, internalState @*/
- /*@modifies fileSystem, internalState @*/
{
struct stat sb;
@@ -65,12 +57,9 @@ static int checkOwners(const char * urlfn)
* @param removeEmpties include -E?
* @return expanded %patch macro (NULL on error)
*/
-/*@-boundswrite@*/
-/*@observer@*/
+
static char *doPatch(Spec spec, int c, int strip, const char *db,
int reverse, int removeEmpties, int fuzz)
- /*@globals rpmGlobalMacroContext, h_errno, fileSystem, internalState @*/
- /*@modifies rpmGlobalMacroContext, fileSystem, internalState @*/
{
const char *fn, *urlfn;
static char buf[BUFSIZ];
@@ -127,7 +116,7 @@ static char *doPatch(Spec spec, int c, int strip, const char *db,
case URL_IS_DASH:
urlfn = _free(urlfn);
return NULL;
- /*@notreached@*/ break;
+ break;
}
if (compressed) {
@@ -142,7 +131,7 @@ static char *doPatch(Spec spec, int c, int strip, const char *db,
"if [ $STATUS -ne 0 ]; then\n"
" exit $STATUS\n"
"fi",
- c, /*@-unrecog@*/ (const char *) basename(fn), /*@=unrecog@*/
+ c, (const char *) basename(fn),
zipper,
fn, strip, args);
zipper = _free(zipper);
@@ -156,7 +145,6 @@ static char *doPatch(Spec spec, int c, int strip, const char *db,
urlfn = _free(urlfn);
return buf;
}
-/*@=boundswrite@*/
/**
* Expand %setup macro into %prep scriptlet.
@@ -165,10 +153,7 @@ static char *doPatch(Spec spec, int c, int strip, const char *db,
* @param quietly should -vv be omitted from tar?
* @return expanded %setup macro (NULL on error)
*/
-/*@-boundswrite@*/
-/*@observer@*/ static const char *doUntar(Spec spec, int c, int quietly)
- /*@globals rpmGlobalMacroContext, h_errno, fileSystem, internalState @*/
- /*@modifies rpmGlobalMacroContext, fileSystem, internalState @*/
+static const char *doUntar(Spec spec, int c, int quietly)
{
const char *fn, *urlfn;
static char buf[BUFSIZ];
@@ -190,9 +175,8 @@ static char *doPatch(Spec spec, int c, int strip, const char *db,
urlfn = rpmGetPath("%{_sourcedir}/", sp->source, NULL);
- /*@-internalglobs@*/ /* FIX: shrug */
+ /* FIX: shrug */
taropts = ((rpmIsVerbose() && !quietly) ? "-xvvf" : "-xf");
- /*@=internalglobs@*/
#ifdef AUTOFETCH_NOT /* XXX don't expect this code to be enabled */
/* XXX
@@ -233,7 +217,7 @@ static char *doPatch(Spec spec, int c, int strip, const char *db,
case URL_IS_DASH:
urlfn = _free(urlfn);
return NULL;
- /*@notreached@*/ break;
+ break;
}
if (compressed != COMPRESSED_NOT) {
@@ -281,7 +265,6 @@ static char *doPatch(Spec spec, int c, int strip, const char *db,
urlfn = _free(urlfn);
return buf;
}
-/*@=boundswrite@*/
/**
* Parse %setup macro.
@@ -291,9 +274,6 @@ static char *doPatch(Spec spec, int c, int strip, const char *db,
* @return 0 on success
*/
static int doSetupMacro(Spec spec, char *line)
- /*@globals rpmGlobalMacroContext, h_errno, fileSystem, internalState @*/
- /*@modifies spec->buildSubdir, spec->macros, spec->prep,
- rpmGlobalMacroContext, fileSystem, internalState @*/
{
char buf[BUFSIZ];
StringBuf before;
@@ -306,11 +286,9 @@ static int doSetupMacro(Spec spec, char *line)
int rc;
int num;
- /*@-mods@*/
leaveDirs = skipDefaultAction = 0;
createDir = quietly = 0;
dirName = NULL;
- /*@=mods@*/
if ((rc = poptParseArgvString(line, &argc, &argv))) {
rpmError(RPMERR_BADSPEC, _("Error parsing %%setup: %s\n"),
@@ -421,18 +399,16 @@ static int doSetupMacro(Spec spec, char *line)
/* XXX FIXME: owner & group fixes were conditioned on !geteuid() */
/* Fix the owner, group, and permissions of the setup build tree */
- { /*@observer@*/ static const char *fixmacs[] =
+ { static const char *fixmacs[] =
{ "%{_fixowner}", "%{_fixgroup}", "%{_fixperms}", NULL };
const char ** fm;
for (fm = fixmacs; *fm; fm++) {
const char *fix;
-/*@-boundsread@*/
fix = rpmExpand(*fm, " .", NULL);
if (fix && *fix != '%')
appendLineStringBuf(spec->prep, fix);
fix = _free(fix);
-/*@=boundsread@*/
}
}
@@ -445,12 +421,7 @@ static int doSetupMacro(Spec spec, char *line)
* @param line current line from spec file
* @return 0 on success
*/
-/*@-boundswrite@*/
static int doPatchMacro(Spec spec, char *line)
- /*@globals rpmGlobalMacroContext, h_errno,
- fileSystem, internalState @*/
- /*@modifies spec->prep, rpmGlobalMacroContext,
- fileSystem, internalState @*/
{
char *opt_b;
int opt_P, opt_p, opt_R, opt_E, opt_F;
@@ -471,7 +442,7 @@ static int doPatchMacro(Spec spec, char *line)
strcpy(buf, line);
}
- /*@-internalglobs@*/ /* FIX: strtok has state */
+ /* FIX: strtok has state */
for (bp = buf; (s = strtok(bp, " \t\n")) != NULL;) {
if (bp) { /* remove 1st token (%patch) */
bp = NULL;
@@ -551,7 +522,6 @@ static int doPatchMacro(Spec spec, char *line)
patch_index++;
}
}
- /*@=internalglobs@*/
/* All args processed */
@@ -571,7 +541,6 @@ static int doPatchMacro(Spec spec, char *line)
return 0;
}
-/*@=boundswrite@*/
int parsePrep(Spec spec)
{
@@ -608,10 +577,8 @@ int parsePrep(Spec spec)
}
saveLines = splitString(getStringBuf(sb), strlen(getStringBuf(sb)), '\n');
- /*@-usereleased@*/
for (lines = saveLines; *lines; lines++) {
res = 0;
-/*@-boundsread@*/
if (! strncmp(*lines, "%setup", sizeof("%setup")-1)) {
res = doSetupMacro(spec, *lines);
} else if (! strncmp(*lines, "%patch", sizeof("%patch")-1)) {
@@ -619,14 +586,12 @@ int parsePrep(Spec spec)
} else {
appendLineStringBuf(spec->prep, *lines);
}
-/*@=boundsread@*/
if (res && !spec->force) {
freeSplitString(saveLines);
sb = freeStringBuf(sb);
return res;
}
}
- /*@=usereleased@*/
freeSplitString(saveLines);
sb = freeStringBuf(sb);
diff --git a/build/parseReqs.c b/build/parseReqs.c
index 96b533de3..666fad7f3 100644
--- a/build/parseReqs.c
+++ b/build/parseReqs.c
@@ -10,9 +10,8 @@
/**
*/
-/*@observer@*/ /*@unchecked@*/
static struct ReqComp {
-/*@observer@*/ /*@null@*/ const char * token;
+const char * token;
rpmsenseFlags sense;
} ReqComparisons[] = {
{ "<=", RPMSENSE_LESS | RPMSENSE_EQUAL},
@@ -88,7 +87,6 @@ int parseRCPOT(Spec spec, Package pkg, const char *field, rpmTag tagN,
break;
}
-/*@-boundsread@*/
for (r = field; *r != '\0'; r = re) {
SKIPWHITE(r);
if (*r == '\0')
@@ -123,7 +121,7 @@ int parseRCPOT(Spec spec, Package pkg, const char *field, rpmTag tagN,
struct ReqComp *rc;
for (rc = ReqComparisons; rc->token != NULL; rc++) {
if ((ve-v) != strlen(rc->token) || strncmp(v, rc->token, (ve-v)))
- /*@innercontinue@*/ continue;
+ continue;
if (r[0] == '/') {
rpmError(RPMERR_BADSPEC,
@@ -140,9 +138,9 @@ int parseRCPOT(Spec spec, Package pkg, const char *field, rpmTag tagN,
/* Add prereq on rpmlib that has versioned dependencies. */
if (!rpmExpandNumeric("%{?_noVersionedDependencies}"))
(void) rpmlibNeedsFeature(h, "VersionedDependencies", "3.0.3-1");
- /*@switchbreak@*/ break;
+ break;
default:
- /*@switchbreak@*/ break;
+ break;
}
Flags |= rc->sense;
@@ -151,11 +149,10 @@ int parseRCPOT(Spec spec, Package pkg, const char *field, rpmTag tagN,
SKIPWHITE(v);
ve = v;
SKIPNONWHITE(ve);
- /*@innerbreak@*/ break;
+ break;
}
}
- /*@-branchstate@*/
if (Flags & RPMSENSE_SENSEMASK) {
if (*v == '\0' || ve == v) {
rpmError(RPMERR_BADSPEC, _("line %d: Version required: %s\n"),
@@ -168,7 +165,6 @@ int parseRCPOT(Spec spec, Package pkg, const char *field, rpmTag tagN,
re = ve; /* ==> next token after EVR string starts here */
} else
EVR = NULL;
- /*@=branchstate@*/
(void) addReqProv(spec, h, tagN, N, EVR, Flags, index);
@@ -176,7 +172,6 @@ int parseRCPOT(Spec spec, Package pkg, const char *field, rpmTag tagN,
EVR = _free(EVR);
}
-/*@=boundsread@*/
return 0;
}
diff --git a/build/parseScript.c b/build/parseScript.c
index e8bbb7717..028effe82 100644
--- a/build/parseScript.c
+++ b/build/parseScript.c
@@ -10,14 +10,10 @@
#include <rpmlua.h>
-/*@access StringBuf@*/ /* XXX compared with NULL */
-/*@access poptContext @*/ /* compared with NULL */
-
/**
*/
static int addTriggerIndex(Package pkg, const char *file,
const char *script, const char *prog)
- /*@modifies pkg->triggerFiles @*/
{
struct TriggerFileEntry *tfe;
struct TriggerFileEntry *list = pkg->triggerFiles;
@@ -49,13 +45,9 @@ static int addTriggerIndex(Package pkg, const char *file,
}
/* these have to be global because of stupid compilers */
-/*@unchecked@*/
- /*@observer@*/ /*@null@*/ static const char *name = NULL;
-/*@unchecked@*/
- /*@observer@*/ /*@null@*/ static const char *prog = NULL;
-/*@unchecked@*/
- /*@observer@*/ /*@null@*/ static const char *file = NULL;
-/*@unchecked@*/
+ static const char *name = NULL;
+ static const char *prog = NULL;
+ static const char *file = NULL;
static struct poptOption optionsTable[] = {
{ NULL, 'p', POPT_ARG_STRING, &prog, 'p', NULL, NULL},
{ NULL, 'n', POPT_ARG_STRING, &name, 'n', NULL, NULL},
@@ -68,7 +60,6 @@ static int addTriggerIndex(Package pkg, const char *file,
/* We then pass the remaining arguments to parseRCPOT, along with */
/* an index we just determined. */
-/*@-boundswrite@*/
int parseScript(Spec spec, int parsePart)
{
/* There are a few options to scripts: */
@@ -99,13 +90,10 @@ int parseScript(Spec spec, int parsePart)
poptContext optCon = NULL;
reqargs[0] = '\0';
- /*@-mods@*/
name = NULL;
prog = "/bin/sh";
file = NULL;
- /*@=mods@*/
- /*@-branchstate@*/
switch (parsePart) {
case PART_PRE:
tag = RPMTAG_PREIN;
@@ -171,7 +159,6 @@ int parseScript(Spec spec, int parsePart)
partname = "%triggerpostun";
break;
}
- /*@=branchstate@*/
if (tag == RPMTAG_TRIGGERSCRIPTS) {
/* break line into two */
@@ -211,10 +198,10 @@ int parseScript(Spec spec, int parsePart)
rc = RPMERR_BADSPEC;
goto exit;
}
- /*@switchbreak@*/ break;
+ break;
case 'n':
flag = PART_NAME;
- /*@switchbreak@*/ break;
+ break;
}
}
@@ -228,10 +215,8 @@ int parseScript(Spec spec, int parsePart)
}
if (poptPeekArg(optCon)) {
- /*@-mods@*/
if (name == NULL)
name = poptGetArg(optCon);
- /*@=mods@*/
if (poptPeekArg(optCon)) {
rpmError(RPMERR_BADSPEC, _("line %d: Too many names: %s\n"),
spec->lineNum,
@@ -364,4 +349,3 @@ exit:
return rc;
}
-/*@=boundswrite@*/
diff --git a/build/parseSpec.c b/build/parseSpec.c
index 912b9778a..4e267be0d 100644
--- a/build/parseSpec.c
+++ b/build/parseSpec.c
@@ -11,15 +11,11 @@
#include "rpmts.h"
#include "debug.h"
-/*@access FD_t @*/ /* compared with NULL */
-
/**
*/
-/*@unchecked@*/
static struct PartRec {
int part;
int len;
-/*@observer@*/ /*@null@*/
const char * token;
} partList[] = {
{ PART_PREAMBLE, 0, "%package"},
@@ -48,7 +44,6 @@ static struct PartRec {
/**
*/
static inline void initParts(struct PartRec *p)
- /*@modifies p->len @*/
{
for (; p->token != NULL; p++)
p->len = strlen(p->token);
@@ -58,18 +53,14 @@ rpmParseState isPart(const char *line)
{
struct PartRec *p;
-/*@-boundsread@*/
if (partList[0].len == 0)
initParts(partList);
-/*@=boundsread@*/
for (p = partList; p->token != NULL; p++) {
char c;
if (xstrncasecmp(line, p->token, p->len))
continue;
-/*@-boundsread@*/
c = *(line + p->len);
-/*@=boundsread@*/
if (c == '\0' || xisspace(c))
break;
}
@@ -80,13 +71,11 @@ rpmParseState isPart(const char *line)
/**
*/
static int matchTok(const char *token, const char *line)
- /*@*/
{
const char *b, *be = line;
size_t toklen = strlen(token);
int rc = 0;
-/*@-boundsread@*/
while ( *(b = be) != '\0' ) {
SKIPSPACE(b);
be = b;
@@ -98,24 +87,20 @@ static int matchTok(const char *token, const char *line)
rc = 1;
break;
}
-/*@=boundsread@*/
return rc;
}
-/*@-boundswrite@*/
void handleComments(char *s)
{
SKIPSPACE(s);
if (*s == '#')
*s = '\0';
}
-/*@=boundswrite@*/
/**
*/
static void forceIncludeFile(Spec spec, const char * fileName)
- /*@modifies spec->fileStack @*/
{
OFI_t * ofi;
@@ -127,13 +112,7 @@ static void forceIncludeFile(Spec spec, const char * fileName)
/**
*/
-/*@-boundswrite@*/
static int copyNextLine(Spec spec, OFI_t *ofi, int strip)
- /*@globals rpmGlobalMacroContext, h_errno,
- fileSystem @*/
- /*@modifies spec->nextline, spec->nextpeekc, spec->lbuf, spec->line,
- ofi->readPtr,
- rpmGlobalMacroContext, fileSystem @*/
{
char *last;
char ch;
@@ -152,9 +131,7 @@ static int copyNextLine(Spec spec, OFI_t *ofi, int strip)
ch = ' ';
while (*from && ch != '\n')
ch = *to++ = *from++;
-/*@-mods@*/
spec->lbufPtr = to;
-/*@=mods@*/
*to++ = '\0';
ofi->readPtr = from;
@@ -163,37 +140,33 @@ static int copyNextLine(Spec spec, OFI_t *ofi, int strip)
switch (*p) {
case '\\':
switch (*(p+1)) {
- case '\n': p++, nc = 1; /*@innerbreak@*/ break;
- case '\0': /*@innerbreak@*/ break;
- default: p++; /*@innerbreak@*/ break;
+ case '\n': p++, nc = 1; break;
+ case '\0': break;
+ default: p++; break;
}
- /*@switchbreak@*/ break;
- case '\n': nc = 0; /*@switchbreak@*/ break;
+ break;
+ case '\n': nc = 0; break;
case '%':
switch (*(p+1)) {
- case '{': p++, bc++; /*@innerbreak@*/ break;
- case '(': p++, pc++; /*@innerbreak@*/ break;
- case '%': p++; /*@innerbreak@*/ break;
+ case '{': p++, bc++; break;
+ case '(': p++, pc++; break;
+ case '%': p++; break;
}
- /*@switchbreak@*/ break;
- case '{': if (bc > 0) bc++; /*@switchbreak@*/ break;
- case '}': if (bc > 0) bc--; /*@switchbreak@*/ break;
- case '(': if (pc > 0) pc++; /*@switchbreak@*/ break;
- case ')': if (pc > 0) pc--; /*@switchbreak@*/ break;
+ break;
+ case '{': if (bc > 0) bc++; break;
+ case '}': if (bc > 0) bc--; break;
+ case '(': if (pc > 0) pc++; break;
+ case ')': if (pc > 0) pc--; break;
}
}
/* If it doesn't, ask for one more line. We need a better
* error code for this. */
if (pc || bc || nc ) {
-/*@-observertrans -readonlytrans@*/
spec->nextline = "";
-/*@=observertrans =readonlytrans@*/
return RPMERR_UNMATCHEDIF;
}
-/*@-mods@*/
spec->lbufPtr = spec->lbuf;
-/*@=mods@*/
/* Don't expand macros (eg. %define) in false branch of %if clause */
if (spec->readStack->reading &&
@@ -228,9 +201,7 @@ static int copyNextLine(Spec spec, OFI_t *ofi, int strip)
return 0;
}
-/*@=boundswrite@*/
-/*@-boundswrite@*/
int readLine(Spec spec, int strip)
{
#ifdef DYING
@@ -245,7 +216,6 @@ int readLine(Spec spec, int strip)
retry:
/* Make sure the current file is open */
- /*@-branchstate@*/
if (ofi->fd == NULL) {
ofi->fd = Fopen(ofi->fileName, "r.fpio");
if (ofi->fd == NULL || Ferror(ofi->fd)) {
@@ -256,13 +226,11 @@ retry:
}
spec->lineNum = ofi->lineNum = 0;
}
- /*@=branchstate@*/
/* Make sure we have something in the read buffer */
if (!(ofi->readPtr && *(ofi->readPtr))) {
- /*@-type@*/ /* FIX: cast? */
+ /* FIX: cast? */
FILE * f = fdGetFp(ofi->fd);
- /*@=type@*/
if (f == NULL || !fgets(ofi->readBuf, BUFSIZ, f)) {
/* EOF */
if (spec->readStack->next) {
@@ -410,11 +378,9 @@ retry:
spec->line[0] = '\0';
}
- /*@-compmempass@*/ /* FIX: spec->readStack->next should be dependent */
+ /* FIX: spec->readStack->next should be dependent */
return 0;
- /*@=compmempass@*/
}
-/*@=boundswrite@*/
void closeSpec(Spec spec)
{
@@ -429,13 +395,8 @@ void closeSpec(Spec spec)
}
}
-/*@-redecl@*/
-/*@unchecked@*/
extern int noLang; /* XXX FIXME: pass as arg */
-/*@=redecl@*/
-/*@todo Skip parse recursion if os is not compatible. @*/
-/*@-boundswrite@*/
int parseSpec(rpmts ts, const char *specFile, const char *rootURL,
const char *buildRootURL, int recursing, const char *passPhrase,
const char *cookie, int anyarch, int force)
@@ -464,9 +425,7 @@ int parseSpec(rpmts ts, const char *specFile, const char *rootURL,
if (buildRootURL) {
const char * buildRoot;
(void) urlPath(buildRootURL, &buildRoot);
- /*@-branchstate@*/
if (*buildRoot == '\0') buildRoot = "/";
- /*@=branchstate@*/
if (!strcmp(buildRoot, "/")) {
rpmError(RPMERR_BADSPEC,
_("BuildRoot can not be \"/\": %s\n"), buildRootURL);
@@ -494,28 +453,28 @@ int parseSpec(rpmts ts, const char *specFile, const char *rootURL,
/* in the spec's line buffer. Except for parsePreamble(), */
/* which handles the initial entry into a spec file. */
- /*@-infloops@*/ /* LCL: parsePart is modified @*/
+ /* LCL: parsePart is modified @*/
while (parsePart < PART_LAST && parsePart != PART_NONE) {
switch (parsePart) {
case PART_PREAMBLE:
parsePart = parsePreamble(spec, initialPackage);
initialPackage = 0;
- /*@switchbreak@*/ break;
+ break;
case PART_PREP:
parsePart = parsePrep(spec);
- /*@switchbreak@*/ break;
+ break;
case PART_BUILD:
case PART_INSTALL:
case PART_CHECK:
case PART_CLEAN:
parsePart = parseBuildInstallClean(spec, parsePart);
- /*@switchbreak@*/ break;
+ break;
case PART_CHANGELOG:
parsePart = parseChangelog(spec);
- /*@switchbreak@*/ break;
+ break;
case PART_DESCRIPTION:
parsePart = parseDescription(spec);
- /*@switchbreak@*/ break;
+ break;
case PART_PRE:
case PART_POST:
@@ -528,16 +487,16 @@ int parseSpec(rpmts ts, const char *specFile, const char *rootURL,
case PART_TRIGGERUN:
case PART_TRIGGERPOSTUN:
parsePart = parseScript(spec, parsePart);
- /*@switchbreak@*/ break;
+ break;
case PART_FILES:
parsePart = parseFiles(spec);
- /*@switchbreak@*/ break;
+ break;
case PART_NONE: /* XXX avoid gcc whining */
case PART_LAST:
case PART_BUILDARCHITECTURES:
- /*@switchbreak@*/ break;
+ break;
}
if (parsePart >= PART_LAST) {
@@ -559,7 +518,7 @@ int parseSpec(rpmts ts, const char *specFile, const char *rootURL,
/* Skip if not arch is not compatible. */
if (!rpmMachineScore(RPM_MACHTABLE_BUILDARCH, spec->BANames[x]))
- /*@innercontinue@*/ continue;
+ continue;
#ifdef DYING
rpmGetMachine(&saveArch, NULL);
saveArch = xstrdup(saveArch);
@@ -573,10 +532,8 @@ int parseSpec(rpmts ts, const char *specFile, const char *rootURL,
|| (spec->BASpecs[index] = rpmtsSetSpec(ts, NULL)) == NULL)
{
spec->BACount = index;
-/*@-nullstate@*/
spec = freeSpec(spec);
return RPMERR_BADSPEC;
-/*@=nullstate@*/
}
#ifdef DYING
rpmSetMachine(saveArch, NULL);
@@ -591,10 +548,8 @@ int parseSpec(rpmts ts, const char *specFile, const char *rootURL,
if (! index) {
rpmError(RPMERR_BADSPEC,
_("No compatible architectures found for build\n"));
-/*@-nullstate@*/
spec = freeSpec(spec);
return RPMERR_BADSPEC;
-/*@=nullstate@*/
}
/*
@@ -606,20 +561,18 @@ int parseSpec(rpmts ts, const char *specFile, const char *rootURL,
* further problem that the macro context, particularly
* %{_target_cpu}, disagrees with the info in the header.
*/
- /*@-branchstate@*/
if (spec->BACount >= 1) {
Spec nspec = spec->BASpecs[0];
spec->BASpecs = _free(spec->BASpecs);
spec = freeSpec(spec);
spec = nspec;
}
- /*@=branchstate@*/
(void) rpmtsSetSpec(ts, spec);
return 0;
}
}
- /*@=infloops@*/ /* LCL: parsePart is modified @*/
+ /* LCL: parsePart is modified @*/
/* Check for description in each package and add arch and os */
{
@@ -681,4 +634,3 @@ int parseSpec(rpmts ts, const char *specFile, const char *rootURL,
return 0;
}
-/*@=boundswrite@*/
diff --git a/build/poptBT.c b/build/poptBT.c
index 07ac2cf6e..df266e88e 100644
--- a/build/poptBT.c
+++ b/build/poptBT.c
@@ -12,7 +12,6 @@
#include "legacy.h" /* XXX _noDirTokens */
#include "debug.h"
-/*@unchecked@*/
struct rpmBuildArguments_s rpmBTArgs;
#define POPT_USECATALOG -1011
@@ -43,32 +42,22 @@ struct rpmBuildArguments_s rpmBTArgs;
#define POPT_TP 0x7470
#define POPT_TS 0x7473
-/*@-redecl@*/
-/*@unchecked@*/
extern int _fsm_debug;
-/*@=redecl@*/
-/*@-exportlocal@*/
-/*@unchecked@*/
int noLang = 0;
-/*@=exportlocal@*/
-/*@unchecked@*/
static int noBuild = 0;
-/*@unchecked@*/
static int signIt = 0;
-/*@unchecked@*/
static int useCatalog = 0;
/**
*/
-/*@-boundswrite@*/
-static void buildArgCallback( /*@unused@*/ poptContext con,
- /*@unused@*/ enum poptCallbackReason reason,
+static void buildArgCallback( poptContext con,
+ enum poptCallbackReason reason,
const struct poptOption * opt, const char * arg,
- /*@unused@*/ const void * data)
+ const void * data)
{
BTA_t rba = &rpmBTArgs;
@@ -144,17 +133,13 @@ static void buildArgCallback( /*@unused@*/ poptContext con,
}
}
-/*@=boundswrite@*/
/**
*/
-/*@-bitwisesigned -compmempass @*/
-/*@unchecked@*/
struct poptOption rpmBuildPoptTable[] = {
-/*@-type@*/ /* FIX: cast? */
+/* FIX: cast? */
{ NULL, '\0', POPT_ARG_CALLBACK | POPT_CBFLAG_INC_DATA | POPT_CBFLAG_CONTINUE,
buildArgCallback, 0, NULL, NULL },
-/*@=type@*/
{ "bp", 0, POPT_ARGFLAG_ONEDASH, 0, POPT_BP,
N_("build through %prep (unpack sources and apply patches) from <specfile>"),
@@ -249,4 +234,3 @@ struct poptOption rpmBuildPoptTable[] = {
POPT_TABLEEND
};
-/*@=bitwisesigned =compmempass @*/
diff --git a/build/reqprov.c b/build/reqprov.c
index 0178b1573..3d68ac797 100644
--- a/build/reqprov.c
+++ b/build/reqprov.c
@@ -8,7 +8,7 @@
#include "rpmbuild.h"
#include "debug.h"
-int addReqProv(/*@unused@*/ Spec spec, Header h, /*@unused@*/ rpmTag tagN,
+int addReqProv(Spec spec, Header h, rpmTag tagN,
const char * N, const char * EVR, rpmsenseFlags Flags,
int index)
{
@@ -57,10 +57,8 @@ int addReqProv(/*@unused@*/ Spec spec, Header h, /*@unused@*/ rpmTag tagN,
Flags = (Flags & RPMSENSE_SENSEMASK) | extra;
- /*@-branchstate@*/
if (EVR == NULL)
EVR = "";
- /*@=branchstate@*/
/* Check for duplicate dependencies. */
if (hge(h, nametag, &dnt, (void **) &names, &len)) {
@@ -77,7 +75,6 @@ int addReqProv(/*@unused@*/ Spec spec, Header h, /*@unused@*/ rpmTag tagN,
if (indextag)
xx = hge(h, indextag, NULL, (void **) &indexes, NULL);
-/*@-boundsread@*/
while (len > 0) {
len--;
if (strcmp(names[len], N))
@@ -93,7 +90,6 @@ int addReqProv(/*@unused@*/ Spec spec, Header h, /*@unused@*/ rpmTag tagN,
break;
}
-/*@=boundsread@*/
names = hfd(names, dnt);
versions = hfd(versions, dvt);
if (duplicate)
@@ -114,7 +110,6 @@ int addReqProv(/*@unused@*/ Spec spec, Header h, /*@unused@*/ rpmTag tagN,
return 0;
}
-/*@-boundswrite@*/
int rpmlibNeedsFeature(Header h, const char * feature, const char * featureEVR)
{
char * reqname = alloca(sizeof("rpmlib()") + strlen(feature));
@@ -125,4 +120,3 @@ int rpmlibNeedsFeature(Header h, const char * feature, const char * featureEVR)
return addReqProv(NULL, h, RPMTAG_REQUIRENAME, reqname, featureEVR,
RPMSENSE_RPMLIB|(RPMSENSE_LESS|RPMSENSE_EQUAL), 0);
}
-/*@=boundswrite@*/
diff --git a/build/rpmbuild.h b/build/rpmbuild.h
index c94ddf1ca..12cf6ab82 100644
--- a/build/rpmbuild.h
+++ b/build/rpmbuild.h
@@ -18,11 +18,8 @@
/** \ingroup rpmbuild
* Bit(s) to control buildSpec() operation.
*/
-/*@-typeuse@*/
typedef enum rpmBuildFlags_e {
-/*@-enummemuse@*/
RPMBUILD_NONE = 0,
-/*@=enummemuse@*/
RPMBUILD_PREP = (1 << 0), /*!< Execute %%prep. */
RPMBUILD_BUILD = (1 << 1), /*!< Execute %%build. */
RPMBUILD_INSTALL = (1 << 2), /*!< Execute %%install. */
@@ -36,7 +33,6 @@ typedef enum rpmBuildFlags_e {
RPMBUILD_STRINGBUF = (1 << 10), /*!< only for doScript() */
RPMBUILD_RMSPEC = (1 << 11) /*!< Remove spec file. */
} rpmBuildFlags;
-/*@=typeuse@*/
#include <ctype.h>
@@ -81,14 +77,11 @@ typedef enum rpmParseState_e {
#ifdef __cplusplus
extern "C" {
#endif
-/*@-redecl@*/
/** \ingroup rpmbuild
* Destroy uid/gid caches.
*/
-void freeNames(void)
- /*@globals internalState@*/
- /*@modifies internalState */;
+void freeNames(void);
/** \ingroup rpmbuild
* Return cached user name from user id.
@@ -96,9 +89,7 @@ void freeNames(void)
* @param uid user id
* @return cached user name
*/
-extern /*@observer@*/ const char * getUname(uid_t uid)
- /*@globals internalState @*/
- /*@modifies internalState @*/;
+extern const char * getUname(uid_t uid);
/** \ingroup rpmbuild
* Return cached user name.
@@ -106,9 +97,7 @@ extern /*@observer@*/ const char * getUname(uid_t uid)
* @param uname user name
* @return cached user name
*/
-extern /*@observer@*/ const char * getUnameS(const char * uname)
- /*@globals internalState @*/
- /*@modifies internalState @*/;
+extern const char * getUnameS(const char * uname);
/** \ingroup rpmbuild
* Return cached user id.
@@ -116,9 +105,7 @@ extern /*@observer@*/ const char * getUnameS(const char * uname)
* @param uname user name
* @return cached uid
*/
-uid_t getUidS(const char * uname)
- /*@globals internalState @*/
- /*@modifies internalState @*/;
+uid_t getUidS(const char * uname);
/** \ingroup rpmbuild
* Return cached group name from group id.
@@ -126,9 +113,7 @@ uid_t getUidS(const char * uname)
* @param gid group id
* @return cached group name
*/
-extern /*@observer@*/ const char * getGname(gid_t gid)
- /*@globals internalState @*/
- /*@modifies internalState @*/;
+extern const char * getGname(gid_t gid);
/** \ingroup rpmbuild
* Return cached group name.
@@ -136,9 +121,7 @@ extern /*@observer@*/ const char * getGname(gid_t gid)
* @param gname group name
* @return cached group name
*/
-extern /*@observer@*/ const char * getGnameS(const char * gname)
- /*@globals internalState @*/
- /*@modifies internalState @*/;
+extern const char * getGnameS(const char * gname);
/** \ingroup rpmbuild
* Return cached group id.
@@ -146,21 +129,19 @@ extern /*@observer@*/ const char * getGnameS(const char * gname)
* @param gname group name
* @return cached gid
*/
-gid_t getGidS(const char * gname)
- /*@globals internalState @*/
- /*@modifies internalState @*/;
+gid_t getGidS(const char * gname);
/** \ingroup rpmbuild
* Return build hostname.
* @return build hostname
*/
-extern /*@observer@*/ const char * buildHost(void) /*@*/;
+extern const char * buildHost(void) ;
/** \ingroup rpmbuild
* Return build time stamp.
* @return build time stamp
*/
-extern /*@observer@*/ int_32 * getBuildTime(void) /*@*/;
+extern int_32 * getBuildTime(void) ;
/** \ingroup rpmbuild
* Read next line from spec file.
@@ -168,33 +149,26 @@ extern /*@observer@*/ int_32 * getBuildTime(void) /*@*/;
* @param strip truncate comments?
* @return 0 on success, 1 on EOF, <0 on error
*/
-int readLine(Spec spec, int strip)
- /*@globals rpmGlobalMacroContext, h_errno, fileSystem, internalState @*/
- /*@modifies spec->fileStack, spec->readStack, spec->line, spec->lineNum,
- spec->nextline, spec->nextpeekc, spec->lbuf, spec->sl,
- rpmGlobalMacroContext, fileSystem, internalState @*/;
+int readLine(Spec spec, int strip);
/** \ingroup rpmbuild
* Stop reading from spec file, freeing resources.
* @param spec spec file control structure
*/
-void closeSpec(/*@partial@*/ Spec spec)
- /*@globals fileSystem, internalState @*/
- /*@modifies spec->fileStack, fileSystem, internalState @*/;
+void closeSpec(Spec spec);
/** \ingroup rpmbuild
* Truncate comment lines.
* @param s skip white space, truncate line at '#'
*/
-void handleComments(char * s)
- /*@modifies s @*/;
+void handleComments(char * s);
/** \ingroup rpmbuild
* Check line for section separator, return next parser state.
* @param line from spec file
* @return next parser state
*/
-rpmParseState isPart(const char * line) /*@*/;
+rpmParseState isPart(const char * line) ;
/** \ingroup rpmbuild
* Parse a number.
@@ -202,8 +176,7 @@ rpmParseState isPart(const char * line) /*@*/;
* @retval res pointer to int
* @return 0 on success, 1 on failure
*/
-int parseNum(/*@null@*/ const char * line, /*@null@*/ /*@out@*/int * res)
- /*@modifies *res @*/;
+int parseNum(const char * line,int * res);
/** \ingroup rpmbuild
* Add changelog entry to header.
@@ -213,8 +186,7 @@ int parseNum(/*@null@*/ const char * line, /*@null@*/ /*@out@*/int * res)
* @param text description of change
*/
void addChangelogEntry(Header h, time_t time, const char * name,
- const char * text)
- /*@modifies h @*/;
+ const char * text);
/** \ingroup rpmbuild
* Parse %%build/%%install/%%clean section(s) of a spec file.
@@ -222,50 +194,28 @@ void addChangelogEntry(Header h, time_t time, const char * name,
* @param parsePart current rpmParseState
* @return >= 0 next rpmParseState, < 0 on error
*/
-int parseBuildInstallClean(Spec spec, rpmParseState parsePart)
- /*@globals rpmGlobalMacroContext, h_errno, fileSystem, internalState @*/
- /*@modifies spec->build, spec->install, spec->check, spec->clean,
- spec->macros,
- spec->fileStack, spec->readStack, spec->line, spec->lineNum,
- spec->nextline, spec->nextpeekc, spec->lbuf, spec->sl,
- rpmGlobalMacroContext, fileSystem, internalState @*/;
+int parseBuildInstallClean(Spec spec, rpmParseState parsePart);
/** \ingroup rpmbuild
* Parse %%changelog section of a spec file.
* @param spec spec file control structure
* @return >= 0 next rpmParseState, < 0 on error
*/
-int parseChangelog(Spec spec)
- /*@globals rpmGlobalMacroContext, h_errno, fileSystem, internalState @*/
- /*@modifies spec->fileStack, spec->readStack, spec->line, spec->lineNum,
- spec->nextline, spec->nextpeekc, spec->lbuf, spec->sl,
- spec->packages->header,
- rpmGlobalMacroContext, fileSystem, internalState @*/;
+int parseChangelog(Spec spec);
/** \ingroup rpmbuild
* Parse %%description section of a spec file.
* @param spec spec file control structure
* @return >= 0 next rpmParseState, < 0 on error
*/
-int parseDescription(Spec spec)
- /*@globals rpmGlobalMacroContext, h_errno, fileSystem, internalState @*/
- /*@modifies spec->packages,
- spec->fileStack, spec->readStack, spec->line, spec->lineNum,
- spec->nextline, spec->nextpeekc, spec->lbuf, spec->sl,
- spec->st,
- rpmGlobalMacroContext, fileSystem, internalState @*/;
+int parseDescription(Spec spec);
/** \ingroup rpmbuild
* Parse %%files section of a spec file.
* @param spec spec file control structure
* @return >= 0 next rpmParseState, < 0 on error
*/
-int parseFiles(Spec spec)
- /*@globals rpmGlobalMacroContext, h_errno, fileSystem, internalState @*/
- /*@modifies spec->packages,
- spec->fileStack, spec->readStack, spec->line, spec->lineNum,
- spec->nextline, spec->nextpeekc, spec->lbuf, spec->sl,
- rpmGlobalMacroContext, fileSystem, internalState @*/;
+int parseFiles(Spec spec);
/** \ingroup rpmbuild
* Parse tags from preamble of a spec file.
@@ -273,30 +223,14 @@ int parseFiles(Spec spec)
* @param initialPackage
* @return >= 0 next rpmParseState, < 0 on error
*/
-int parsePreamble(Spec spec, int initialPackage)
- /*@globals rpmGlobalMacroContext, h_errno,
- fileSystem, internalState @*/
- /*@modifies spec->packages,
- spec->fileStack, spec->readStack, spec->line, spec->lineNum,
- spec->buildSubdir,
- spec->macros, spec->st, spec->buildRootURL,
- spec->sources, spec->numSources, spec->noSource,
- spec->buildRestrictions, spec->BANames, spec->BACount,
- spec->gotBuildRootURL,
- spec->nextline, spec->nextpeekc, spec->lbuf, spec->sl,
- rpmGlobalMacroContext, fileSystem, internalState @*/;
+int parsePreamble(Spec spec, int initialPackage);
/** \ingroup rpmbuild
* Parse %%prep section of a spec file.
* @param spec spec file control structure
* @return >= 0 next rpmParseState, < 0 on error
*/
-int parsePrep(Spec spec)
- /*@globals rpmGlobalMacroContext, h_errno, fileSystem, internalState @*/
- /*@modifies spec->prep, spec->buildSubdir, spec->macros,
- spec->fileStack, spec->readStack, spec->line, spec->lineNum,
- spec->nextline, spec->nextpeekc, spec->lbuf, spec->sl,
- rpmGlobalMacroContext, fileSystem, internalState @*/;
+int parsePrep(Spec spec);
/** \ingroup rpmbuild
* Parse dependency relations from spec file and/or autogenerated output buffer.
@@ -309,9 +243,7 @@ int parsePrep(Spec spec)
* @return 0 on success, RPMERR_BADSPEC on failure
*/
int parseRCPOT(Spec spec, Package pkg, const char * field, rpmTag tagN,
- int index, rpmsenseFlags tagflags)
- /*@globals rpmGlobalMacroContext, h_errno @*/
- /*@modifies rpmGlobalMacroContext @*/;
+ int index, rpmsenseFlags tagflags);
/** \ingroup rpmbuild
* Parse %%pre et al scriptlets from a spec file.
@@ -319,12 +251,7 @@ int parseRCPOT(Spec spec, Package pkg, const char * field, rpmTag tagN,
* @param parsePart current rpmParseState
* @return >= 0 next rpmParseState, < 0 on error
*/
-int parseScript(Spec spec, int parsePart)
- /*@globals rpmGlobalMacroContext, h_errno, fileSystem, internalState @*/
- /*@modifies spec->packages,
- spec->fileStack, spec->readStack, spec->line, spec->lineNum,
- spec->nextline, spec->nextpeekc, spec->lbuf, spec->sl,
- rpmGlobalMacroContext, fileSystem, internalState @*/;
+int parseScript(Spec spec, int parsePart);
/** \ingroup rpmbuild
* Evaluate boolean expression.
@@ -332,9 +259,7 @@ int parseScript(Spec spec, int parsePart)
* @param expr expression to parse
* @return
*/
-int parseExpressionBoolean(Spec spec, const char * expr)
- /*@globals rpmGlobalMacroContext, h_errno @*/
- /*@modifies rpmGlobalMacroContext @*/;
+int parseExpressionBoolean(Spec spec, const char * expr);
/** \ingroup rpmbuild
* Evaluate string expression.
@@ -342,10 +267,7 @@ int parseExpressionBoolean(Spec spec, const char * expr)
* @param expr expression to parse
* @return
*/
-/*@unused@*/ /*@null@*/
-char * parseExpressionString(Spec spec, const char * expr)
- /*@globals rpmGlobalMacroContext, h_errno @*/
- /*@modifies rpmGlobalMacroContext @*/;
+char * parseExpressionString(Spec spec, const char * expr);
/** \ingroup rpmbuild
* Run a build script, assembled from spec file scriptlet section.
@@ -357,12 +279,8 @@ char * parseExpressionString(Spec spec, const char * expr)
* @param test don't execute scripts or package if testing
* @return 0 on success, RPMERR_SCRIPT on failure
*/
-int doScript(Spec spec, int what, /*@null@*/ const char * name,
- /*@null@*/ StringBuf sb, int test)
- /*@globals rpmGlobalMacroContext, h_errno,
- fileSystem, internalState @*/
- /*@modifies spec->macros,
- rpmGlobalMacroContext, fileSystem, internalState @*/;
+int doScript(Spec spec, int what, const char * name,
+ StringBuf sb, int test);
/** \ingroup rpmbuild
* Find sub-package control structure by name.
@@ -372,38 +290,29 @@ int doScript(Spec spec, int what, /*@null@*/ const char * name,
* @retval pkg package control structure
* @return 0 on success, 1 on failure
*/
-int lookupPackage(Spec spec, /*@null@*/ const char * name, int flag,
- /*@out@*/ Package * pkg)
- /*@modifies spec->packages, *pkg @*/;
+int lookupPackage(Spec spec, const char * name, int flag,
+ Package * pkg);
/** \ingroup rpmbuild
* Create and initialize package control structure.
* @param spec spec file control structure
* @return package control structure
*/
-/*@only@*/
-Package newPackage(Spec spec)
- /*@modifies spec->packages, spec->packages->next @*/;
+Package newPackage(Spec spec);
/** \ingroup rpmbuild
* Destroy all packages associated with spec file.
* @param packages package control structure chain
* @return NULL
*/
-/*@null@*/
-Package freePackages(/*@only@*/ /*@null@*/ Package packages)
- /*@globals fileSystem @*/
- /*@modifies packages, fileSystem @*/;
+Package freePackages(Package packages);
/** \ingroup rpmbuild
* Destroy package control structure.
* @param pkg package control structure
* @return NULL
*/
-/*@null@*/
-Package freePackage(/*@only@*/ /*@null@*/ Package pkg)
- /*@globals fileSystem @*/
- /*@modifies pkg, fileSystem @*/;
+Package freePackage(Package pkg);
/** \ingroup rpmbuild
* Add dependency to header, filtering duplicates.
@@ -416,10 +325,9 @@ Package freePackage(/*@only@*/ /*@null@*/ Package pkg)
* @param index (0 always)
* @return 0 always
*/
-int addReqProv(/*@unused@*/Spec spec, Header h, rpmTag tagN,
+int addReqProv(Spec spec, Header h, rpmTag tagN,
const char * N, const char * EVR, rpmsenseFlags Flags,
- int index)
- /*@modifies h @*/;
+ int index);
/** \ingroup rpmbuild
* Add rpmlib feature dependency.
@@ -428,8 +336,7 @@ int addReqProv(/*@unused@*/Spec spec, Header h, rpmTag tagN,
* @param featureEVR rpm feature epoch/version/release
* @return 0 always
*/
-int rpmlibNeedsFeature(Header h, const char * feature, const char * featureEVR)
- /*@modifies h @*/;
+int rpmlibNeedsFeature(Header h, const char * feature, const char * featureEVR);
/** \ingroup rpmbuild
* Post-build processing for binary package(s).
@@ -438,33 +345,20 @@ int rpmlibNeedsFeature(Header h, const char * feature, const char * featureEVR)
* @param test don't execute scripts or package if testing
* @return 0 on success
*/
-int processBinaryFiles(Spec spec, int installSpecialDoc, int test)
- /*@globals rpmGlobalMacroContext, h_errno, fileSystem, internalState @*/
- /*@modifies spec->macros,
- spec->packages->cpioList, spec->packages->fileList,
- spec->packages->specialDoc, spec->packages->header,
- rpmGlobalMacroContext, fileSystem, internalState @*/;
+int processBinaryFiles(Spec spec, int installSpecialDoc, int test);
/** \ingroup rpmbuild
* Create and initialize header for source package.
* @param spec spec file control structure
*/
-void initSourceHeader(Spec spec)
- /*@modifies spec->sourceHeader,
- spec->buildRestrictions, spec->BANames,
- spec->packages->header @*/;
+void initSourceHeader(Spec spec);
/** \ingroup rpmbuild
* Post-build processing for source package.
* @param spec spec file control structure
* @return 0 on success
*/
-int processSourceFiles(Spec spec)
- /*@globals rpmGlobalMacroContext, h_errno, fileSystem, internalState @*/
- /*@modifies spec->sourceHeader, spec->sourceCpioList,
- spec->buildRestrictions, spec->BANames,
- spec->packages->header,
- rpmGlobalMacroContext, fileSystem, internalState @*/;
+int processSourceFiles(Spec spec);
/** \ingroup rpmbuild
* Parse spec file into spec control structure.
@@ -480,14 +374,12 @@ int processSourceFiles(Spec spec)
* @return
*/
int parseSpec(rpmts ts, const char * specFile,
- /*@null@*/ const char * rootURL,
- /*@null@*/ const char * buildRootURL,
+ const char * rootURL,
+ const char * buildRootURL,
int recursing,
- /*@null@*/ const char * passPhrase,
- /*@null@*/ const char * cookie,
- int anyarch, int force)
- /*@globals rpmGlobalMacroContext, h_errno, fileSystem, internalState @*/
- /*@modifies ts, rpmGlobalMacroContext, fileSystem, internalState @*/;
+ const char * passPhrase,
+ const char * cookie,
+ int anyarch, int force);
/** \ingroup rpmbuild
* Build stages state machine driver.
@@ -497,39 +389,22 @@ int parseSpec(rpmts ts, const char * specFile,
* @param test don't execute scripts or package if testing
* @return 0 on success
*/
-int buildSpec(rpmts ts, Spec spec, int what, int test)
- /*@globals rpmGlobalMacroContext, h_errno, fileSystem, internalState @*/
- /*@modifies spec->sourceHeader, spec->sourceCpioList, spec->cookie,
- spec->sourceRpmName, spec->sourcePkgId,
- spec->macros, spec->BASpecs,
- spec->buildRestrictions, spec->BANames,
- spec->packages->cpioList, spec->packages->fileList,
- spec->packages->specialDoc, spec->packages->header,
- rpmGlobalMacroContext, fileSystem, internalState @*/;
+int buildSpec(rpmts ts, Spec spec, int what, int test);
/** \ingroup rpmbuild
* Generate binary package(s).
* @param spec spec file control structure
* @return 0 on success
*/
-int packageBinaries(Spec spec)
- /*@globals rpmGlobalMacroContext, h_errno, fileSystem, internalState @*/
- /*@modifies spec->packages->header, spec->packages->cpioList,
- spec->sourceRpmName,
- rpmGlobalMacroContext, fileSystem, internalState @*/;
+int packageBinaries(Spec spec);
/** \ingroup rpmbuild
* Generate source package.
* @param spec spec file control structure
* @return 0 on success
*/
-int packageSources(Spec spec)
- /*@globals rpmGlobalMacroContext, h_errno, fileSystem, internalState @*/
- /*@modifies spec->sourceHeader, spec->cookie, spec->sourceCpioList,
- spec->sourceRpmName, spec->sourcePkgId,
- rpmGlobalMacroContext, fileSystem, internalState @*/;
+int packageSources(Spec spec);
-/*@=redecl@*/
#ifdef __cplusplus
}
#endif
diff --git a/build/rpmfc.c b/build/rpmfc.c
index 9dfafdc36..5b33b9169 100644
--- a/build/rpmfc.c
+++ b/build/rpmfc.c
@@ -21,23 +21,17 @@
#include "debug.h"
-/*@access rpmds @*/
/**
*/
-static int rpmfcExpandAppend(/*@out@*/ ARGV_t * argvp, const ARGV_t av)
- /*@globals rpmGlobalMacroContext, h_errno @*/
- /*@modifies *argvp, rpmGlobalMacroContext @*/
- /*@requires maxRead(argvp) >= 0 @*/
+static int rpmfcExpandAppend(ARGV_t * argvp, const ARGV_t av)
{
ARGV_t argv = *argvp;
int argc = argvCount(argv);
int ac = argvCount(av);
int i;
-/*@-bounds@*/ /* LCL: internal error */
argv = xrealloc(argv, (argc + ac + 1) * sizeof(*argv));
-/*@=bounds@*/
for (i = 0; i < ac; i++)
argv[argc + i] = rpmExpand(av[i], NULL);
argv[argc + ac] = NULL;
@@ -55,12 +49,9 @@ static int rpmfcExpandAppend(/*@out@*/ ARGV_t * argvp, const ARGV_t av)
* @param failNonZero is script failure an error?
* @return buffered stdout from script, NULL on error
*/
-/*@null@*/
-static StringBuf getOutputFrom(/*@null@*/ const char * dir, ARGV_t argv,
+static StringBuf getOutputFrom(const char * dir, ARGV_t argv,
const char * writePtr, int writeBytesLeft,
int failNonZero)
- /*@globals fileSystem, internalState@*/
- /*@modifies fileSystem, internalState@*/
{
pid_t child, reaped;
int toProg[2];
@@ -70,9 +61,8 @@ static StringBuf getOutputFrom(/*@null@*/ const char * dir, ARGV_t argv,
StringBuf readBuff;
int done;
- /*@-type@*/ /* FIX: cast? */
+ /* FIX: cast? */
oldhandler = signal(SIGPIPE, SIG_IGN);
- /*@=type@*/
toProg[0] = toProg[1] = 0;
(void) pipe(toProg);
@@ -164,14 +154,12 @@ top:
}
/* Read any data from prog */
-/*@-boundswrite@*/
{ char buf[BUFSIZ+1];
while ((nbr = read(fromProg[0], buf, sizeof(buf)-1)) > 0) {
buf[nbr] = '\0';
appendStringBuf(readBuff, buf);
}
}
-/*@=boundswrite@*/
/* terminate on (non-blocking) EOF or error */
done = (nbr == 0 || (nbr < 0 && errno != EAGAIN));
@@ -183,9 +171,8 @@ top:
(void) close(toProg[1]);
if (fromProg[0] >= 0)
(void) close(fromProg[0]);
- /*@-type@*/ /* FIX: cast? */
+ /* FIX: cast? */
(void) signal(SIGPIPE, oldhandler);
- /*@=type@*/
/* Collect status from prog */
reaped = waitpid(child, &status, 0);
@@ -234,11 +221,9 @@ int rpmfcExec(ARGV_t av, StringBuf sb_stdin, StringBuf * sb_stdoutp,
/* Build argv, appending args to the executable args. */
xav = NULL;
-/*@-boundswrite@*/
xx = argvAppend(&xav, pav);
if (av[1])
xx = rpmfcExpandAppend(&xav, av + 1);
-/*@=boundswrite@*/
if (sb_stdin != NULL) {
buf_stdin = getStringBuf(sb_stdin);
@@ -248,12 +233,10 @@ int rpmfcExec(ARGV_t av, StringBuf sb_stdin, StringBuf * sb_stdoutp,
/* Read output from exec'd helper. */
sb = getOutputFrom(NULL, xav, buf_stdin, buf_stdin_len, failnonzero);
-/*@-branchstate@*/
if (sb_stdoutp != NULL) {
*sb_stdoutp = sb;
sb = NULL; /* XXX don't free */
}
-/*@=branchstate@*/
ec = 0;
@@ -267,9 +250,7 @@ exit:
/**
*/
-static int rpmfcSaveArg(/*@out@*/ ARGV_t * argvp, const char * key)
- /*@modifies *argvp @*/
- /*@requires maxSet(argvp) >= 0 @*/
+static int rpmfcSaveArg(ARGV_t * argvp, const char * key)
{
int rc = 0;
@@ -280,11 +261,8 @@ static int rpmfcSaveArg(/*@out@*/ ARGV_t * argvp, const char * key)
return rc;
}
-static char * rpmfcFileDep(/*@returned@*/ char * buf, int ix,
- /*@null@*/ rpmds ds)
- /*@modifies buf @*/
- /*@requires maxSet(buf) >= 0 @*/
- /*@ensures maxRead(buf) == 0 @*/
+static char * rpmfcFileDep(char * buf, int ix,
+ rpmds ds)
{
int_32 tagN = rpmdsTagN(ds);
char deptype = 'X';
@@ -298,11 +276,9 @@ static char * rpmfcFileDep(/*@returned@*/ char * buf, int ix,
deptype = 'R';
break;
}
-/*@-nullpass@*/
if (ds != NULL)
sprintf(buf, "%08d%c %s %s 0x%08x", ix, deptype,
rpmdsN(ds), rpmdsEVR(ds), rpmdsFlags(ds));
-/*@=nullpass@*/
return buf;
};
@@ -314,8 +290,6 @@ static char * rpmfcFileDep(/*@returned@*/ char * buf, int ix,
* @return 0 on success
*/
static int rpmfcHelper(rpmfc fc, unsigned char deptype, const char * nsdep)
- /*@globals rpmGlobalMacroContext, h_errno, fileSystem, internalState @*/
- /*@modifies fc, rpmGlobalMacroContext, fileSystem, internalState @*/
{
const char * fn = fc->fn[fc->ix];
char buf[BUFSIZ];
@@ -335,7 +309,7 @@ static int rpmfcHelper(rpmfc fc, unsigned char deptype, const char * nsdep)
switch (deptype) {
default:
return -1;
- /*@notreached@*/ break;
+ break;
case 'P':
if (fc->skipProv)
return 0;
@@ -360,9 +334,7 @@ static int rpmfcHelper(rpmfc fc, unsigned char deptype, const char * nsdep)
sb_stdin = newStringBuf();
appendLineStringBuf(sb_stdin, fn);
sb_stdout = NULL;
-/*@-boundswrite@*/
xx = rpmfcExec(av, sb_stdin, &sb_stdout, 0);
-/*@=boundswrite@*/
sb_stdin = freeStringBuf(sb_stdin);
if (xx == 0 && sb_stdout != NULL) {
@@ -374,30 +346,28 @@ static int rpmfcHelper(rpmfc fc, unsigned char deptype, const char * nsdep)
N = pav[i];
EVR = "";
Flags = dsContext;
-/*@-branchstate@*/
if (pav[i+1] && strchr("=<>", *pav[i+1])) {
i++;
for (s = pav[i]; *s; s++) {
switch(*s) {
default:
assert(*s != '\0');
- /*@switchbreak@*/ break;
+ break;
case '=':
Flags |= RPMSENSE_EQUAL;
- /*@switchbreak@*/ break;
+ break;
case '<':
Flags |= RPMSENSE_LESS;
- /*@switchbreak@*/ break;
+ break;
case '>':
Flags |= RPMSENSE_GREATER;
- /*@switchbreak@*/ break;
+ break;
}
}
i++;
EVR = pav[i];
assert(EVR != NULL);
}
-/*@=branchstate@*/
/* Add tracking dependency for versioned Provides: */
@@ -416,9 +386,7 @@ assert(EVR != NULL);
xx = rpmdsMerge(depsp, ds);
/* Add to file dependencies. */
-/*@-boundswrite@*/
xx = rpmfcSaveArg(&fc->ddict, rpmfcFileDep(buf, fc->ix, ds));
-/*@=boundswrite@*/
ds = rpmdsFree(ds);
}
@@ -432,7 +400,6 @@ assert(EVR != NULL);
/**
*/
-/*@unchecked@*/ /*@observer@*/
static struct rpmfcTokens_s rpmfcTokens[] = {
{ "directory", RPMFC_DIRECTORY|RPMFC_INCLUDE },
@@ -595,7 +562,7 @@ assert(fx < fc->fddictn->nvals);
switch (deptype) {
default:
assert(depval != NULL);
- /*@switchbreak@*/ break;
+ break;
case 'P':
if (nprovides > 0) {
assert(ix < nprovides);
@@ -603,7 +570,7 @@ assert(ix < nprovides);
if (rpmdsNext(fc->provides) >= 0)
depval = rpmdsDNEVR(fc->provides);
}
- /*@switchbreak@*/ break;
+ break;
case 'R':
if (nrequires > 0) {
assert(ix < nrequires);
@@ -611,7 +578,7 @@ assert(ix < nrequires);
if (rpmdsNext(fc->requires) >= 0)
depval = rpmdsDNEVR(fc->requires);
}
- /*@switchbreak@*/ break;
+ break;
}
if (depval)
fprintf(fp, "\t%s\n", depval);
@@ -655,8 +622,6 @@ rpmfc rpmfcNew(void)
* @return 0 on success
*/
static int rpmfcSCRIPT(rpmfc fc)
- /*@globals rpmGlobalMacroContext, h_errno, fileSystem, internalState @*/
- /*@modifies fc, rpmGlobalMacroContext, fileSystem, internalState @*/
{
const char * fn = fc->fn[fc->ix];
const char * bn;
@@ -681,7 +646,6 @@ static int rpmfcSCRIPT(rpmfc fc)
}
/* Look for #! interpreter in first 10 lines. */
-/*@-boundswrite@*/
for (i = 0; i < 10; i++) {
s = fgets(buf, sizeof(buf) - 1, fp);
@@ -701,7 +665,7 @@ static int rpmfcSCRIPT(rpmfc fc)
for (se = s+1; *se; se++) {
if (strchr(" \t\n\r", *se) != NULL)
- /*@innerbreak@*/ break;
+ break;
}
*se = '\0';
se++;
@@ -726,7 +690,6 @@ static int rpmfcSCRIPT(rpmfc fc)
break;
}
-/*@=boundswrite@*/
(void) fclose(fp);
@@ -772,8 +735,6 @@ static int rpmfcSCRIPT(rpmfc fc)
* @return 0 on success
*/
static int rpmfcELF(rpmfc fc)
- /*@globals rpmGlobalMacroContext, h_errno, fileSystem, internalState @*/
- /*@modifies fc, rpmGlobalMacroContext, fileSystem, internalState @*/
{
#if HAVE_GELF_H && HAVE_LIBELF
const char * fn = fc->fn[fc->ix];
@@ -822,19 +783,16 @@ static int rpmfcELF(rpmfc fc)
(void) elf_version(EV_CURRENT);
-/*@-evalorder@*/
elf = NULL;
if ((elf = elf_begin (fdno, ELF_C_READ, NULL)) == NULL
|| elf_kind(elf) != ELF_K_ELF
|| (ehdr = gelf_getehdr(elf, &ehdr_mem)) == NULL
|| !(ehdr->e_type == ET_DYN || ehdr->e_type == ET_EXEC))
goto exit;
-/*@=evalorder@*/
isElf64 = ehdr->e_ident[EI_CLASS] == ELFCLASS64;
isDSO = ehdr->e_type == ET_DYN;
- /*@-branchstate -uniondef @*/
scn = NULL;
while ((scn = elf_nextscn(elf, scn)) != NULL) {
shdr = gelf_getshdr(scn, &shdr_mem);
@@ -845,7 +803,7 @@ static int rpmfcELF(rpmfc fc)
switch (shdr->sh_type) {
default:
continue;
- /*@notreached@*/ /*@switchbreak@*/ break;
+ break;
case SHT_GNU_verdef:
data = NULL;
if (!fc->skipProv)
@@ -855,23 +813,23 @@ static int rpmfcELF(rpmfc fc)
def = gelf_getverdef (data, offset, &def_mem);
if (def == NULL)
- /*@innerbreak@*/ break;
+ break;
auxoffset = offset + def->vd_aux;
for (cnt2 = def->vd_cnt; --cnt2 >= 0; ) {
GElf_Verdaux aux_mem, * aux;
aux = gelf_getverdaux (data, auxoffset, &aux_mem);
if (aux == NULL)
- /*@innerbreak@*/ break;
+ break;
s = elf_strptr(elf, shdr->sh_link, aux->vda_name);
if (s == NULL)
- /*@innerbreak@*/ break;
+ break;
if (def->vd_flags & VER_FLG_BASE) {
soname = _free(soname);
soname = xstrdup(s);
auxoffset += aux->vda_next;
- /*@innercontinue@*/ continue;
+ continue;
} else
if (soname != NULL
&& !(filter_GLIBC_PRIVATE != 0
@@ -903,7 +861,7 @@ static int rpmfcELF(rpmfc fc)
offset += def->vd_next;
}
}
- /*@switchbreak@*/ break;
+ break;
case SHT_GNU_verneed:
data = NULL;
/* Files with executable bit set only. */
@@ -913,11 +871,11 @@ static int rpmfcELF(rpmfc fc)
for (cnt = shdr->sh_info; --cnt >= 0; ) {
need = gelf_getverneed (data, offset, &need_mem);
if (need == NULL)
- /*@innerbreak@*/ break;
+ break;
s = elf_strptr(elf, shdr->sh_link, need->vn_file);
if (s == NULL)
- /*@innerbreak@*/ break;
+ break;
soname = _free(soname);
soname = xstrdup(s);
auxoffset = offset + need->vn_aux;
@@ -926,11 +884,11 @@ static int rpmfcELF(rpmfc fc)
aux = gelf_getvernaux (data, auxoffset, &aux_mem);
if (aux == NULL)
- /*@innerbreak@*/ break;
+ break;
s = elf_strptr(elf, shdr->sh_link, aux->vna_name);
if (s == NULL)
- /*@innerbreak@*/ break;
+ break;
/* Filter dependencies that contain GLIBC_PRIVATE */
if (soname != NULL
@@ -962,54 +920,53 @@ static int rpmfcELF(rpmfc fc)
offset += need->vn_next;
}
}
- /*@switchbreak@*/ break;
+ break;
case SHT_DYNAMIC:
data = NULL;
while ((data = elf_getdata (scn, data)) != NULL) {
-/*@-boundswrite@*/
for (cnt = 0; cnt < (shdr->sh_size / shdr->sh_entsize); ++cnt) {
dyn = gelf_getdyn (data, cnt, &dyn_mem);
if (dyn == NULL)
- /*@innerbreak@*/ break;
+ break;
s = NULL;
switch (dyn->d_tag) {
default:
- /*@innercontinue@*/ continue;
- /*@notreached@*/ /*@switchbreak@*/ break;
+ continue;
+ break;
case DT_HASH:
gotHASH= 1;
- /*@innercontinue@*/ continue;
+ continue;
case DT_GNU_HASH:
gotGNUHASH= 1;
- /*@innercontinue@*/ continue;
+ continue;
case DT_DEBUG:
gotDEBUG = 1;
- /*@innercontinue@*/ continue;
+ continue;
case DT_NEEDED:
/* Files with executable bit set only. */
if (fc->skipReq || !(st->st_mode & (S_IXUSR|S_IXGRP|S_IXOTH)))
- /*@innercontinue@*/ continue;
+ continue;
/* Add to package requires. */
depsp = &fc->requires;
tagN = RPMTAG_REQUIRENAME;
dsContext = RPMSENSE_FIND_REQUIRES;
s = elf_strptr(elf, shdr->sh_link, dyn->d_un.d_val);
assert(s != NULL);
- /*@switchbreak@*/ break;
+ break;
case DT_SONAME:
gotSONAME = 1;
/* Add to package provides. */
if (fc->skipProv)
- /*@innercontinue@*/ continue;
+ continue;
depsp = &fc->provides;
tagN = RPMTAG_PROVIDENAME;
dsContext = RPMSENSE_FIND_PROVIDES;
s = elf_strptr(elf, shdr->sh_link, dyn->d_un.d_val);
assert(s != NULL);
- /*@switchbreak@*/ break;
+ break;
}
if (s == NULL)
- /*@innercontinue@*/ continue;
+ continue;
buf[0] = '\0';
t = buf;
@@ -1031,12 +988,10 @@ assert(s != NULL);
ds = rpmdsFree(ds);
}
-/*@=boundswrite@*/
}
- /*@switchbreak@*/ break;
+ break;
}
}
- /*@=branchstate =uniondef @*/
/* For DSOs which use the .gnu_hash section and don't have a .hash
* section, we need to ensure that we have a new enough glibc. */
@@ -1062,18 +1017,15 @@ assert(s != NULL);
else
s = fn;
-/*@-boundswrite@*/
buf[0] = '\0';
t = buf;
-/*@-nullpass@*/ /* LCL: s is not null. */
+/* LCL: s is not null. */
t = stpcpy(t, s);
-/*@=nullpass@*/
#if !defined(__alpha__)
if (isElf64)
t = stpcpy(t, "()(64bit)");
#endif
-/*@=boundswrite@*/
t++;
/* Add to package dependencies. */
@@ -1081,9 +1033,7 @@ assert(s != NULL);
xx = rpmdsMerge(depsp, ds);
/* Add to file dependencies. */
-/*@-boundswrite@*/
xx = rpmfcSaveArg(&fc->ddict, rpmfcFileDep(t, fc->ix, ds));
-/*@=boundswrite@*/
ds = rpmdsFree(ds);
}
@@ -1105,7 +1055,6 @@ typedef struct rpmfcApplyTbl_s {
/**
*/
-/*@unchecked@*/
static struct rpmfcApplyTbl_s rpmfcApplyTable[] = {
{ rpmfcELF, RPMFC_ELF },
{ rpmfcSCRIPT, (RPMFC_SCRIPT|RPMFC_PERL) },
@@ -1152,12 +1101,11 @@ int rpmfcApply(rpmfc fc)
if (fc->fcolor->vals[fc->ix])
for (fcat = rpmfcApplyTable; fcat->func != NULL; fcat++) {
if (!(fc->fcolor->vals[fc->ix] & fcat->colormask))
- /*@innercontinue@*/ continue;
+ continue;
xx = (*fcat->func) (fc);
}
}
-/*@-boundswrite@*/
/* Generate per-file indices into package dependencies. */
nddict = argvCount(fc->ddict);
previx = -1;
@@ -1182,17 +1130,17 @@ assert(se != NULL);
dix = -1;
switch (deptype) {
default:
- /*@switchbreak@*/ break;
+ break;
case 'P':
ds = rpmdsSingle(RPMTAG_PROVIDENAME, N, EVR, Flags);
dix = rpmdsFind(fc->provides, ds);
ds = rpmdsFree(ds);
- /*@switchbreak@*/ break;
+ break;
case 'R':
ds = rpmdsSingle(RPMTAG_REQUIRENAME, N, EVR, Flags);
dix = rpmdsFind(fc->requires, ds);
ds = rpmdsFree(ds);
- /*@switchbreak@*/ break;
+ break;
}
/* XXX assertion incorrect while generating -debuginfo deps. */
@@ -1213,7 +1161,6 @@ assert(dix >= 0);
if (fc->fddictn && fc->fddictn->vals)
fc->fddictn->vals[ix]++;
}
-/*@=boundswrite@*/
return 0;
}
@@ -1226,7 +1173,6 @@ int rpmfcClassify(rpmfc fc, ARGV_t argv, int_16 * fmode)
size_t slen;
int fcolor;
int xx;
-/*@observer@*/
int msflags = MAGIC_CHECK; /* XXX MAGIC_COMPRESS flag? */
magic_t ms = NULL;
@@ -1303,7 +1249,6 @@ assert(s != NULL);
assert(ftype != NULL); /* XXX figger a proper return path. */
}
}
-/*@=branchstate@*/
se = ftype;
rpmMessage(RPMMESS_DEBUG, "%s: %s\n", s, se);
@@ -1318,10 +1263,8 @@ assert(ftype != NULL); /* XXX figger a proper return path. */
fcolor = rpmfcColoring(se);
xx = argiAdd(&fc->fcolor, fc->ix, fcolor);
-/*@-boundswrite@*/
if (fcolor != RPMFC_WHITE && (fcolor & RPMFC_INCLUDE))
xx = rpmfcSaveArg(&fc->cdict, se);
-/*@=boundswrite@*/
}
/* Build per-file class index array. */
@@ -1355,9 +1298,7 @@ typedef struct DepMsg_s * DepMsg_t;
/**
*/
struct DepMsg_s {
-/*@observer@*/ /*@null@*/
const char * msg;
-/*@observer@*/
const char * argv[4];
rpmTag ntag;
rpmTag vtag;
@@ -1368,7 +1309,6 @@ struct DepMsg_s {
/**
*/
-/*@unchecked@*/
static struct DepMsg_s depMsgs[] = {
{ "Provides", { "%{?__find_provides}", NULL, NULL, NULL },
RPMTAG_PROVIDENAME, RPMTAG_PROVIDEVERSION, RPMTAG_PROVIDEFLAGS,
@@ -1415,14 +1355,11 @@ static struct DepMsg_s depMsgs[] = {
{ NULL, { NULL, NULL, NULL, NULL }, 0, 0, 0, 0, 0 }
};
-/*@unchecked@*/
static DepMsg_t DepMsgs = depMsgs;
/**
*/
static void printDeps(Header h)
- /*@globals rpmGlobalMacroContext, h_errno, fileSystem, internalState @*/
- /*@modifies h, rpmGlobalMacroContext, fileSystem, internalState @*/
{
DepMsg_t dm;
rpmds ds = NULL;
@@ -1449,13 +1386,13 @@ static void printDeps(Header h)
Flags = rpmdsFlags(ds);
if (!((Flags & dm->mask) ^ dm->xor))
- /*@innercontinue@*/ continue;
+ continue;
if (bingo == 0) {
rpmMessage(RPMMESS_NORMAL, "%s:", (dm->msg ? dm->msg : ""));
bingo = 1;
}
if ((DNEVR = rpmdsDNEVR(ds)) == NULL)
- /*@innercontinue@*/ continue; /* XXX can't happen */
+ continue; /* XXX can't happen */
rpmMessage(RPMMESS_NORMAL, " %s", DNEVR+2);
}
if (bingo)
@@ -1467,8 +1404,6 @@ static void printDeps(Header h)
/**
*/
static int rpmfcGenerateDependsHelper(const Spec spec, Package pkg, rpmfi fi)
- /*@globals rpmGlobalMacroContext, h_errno, fileSystem, internalState @*/
- /*@modifies fi, rpmGlobalMacroContext, fileSystem, internalState @*/
{
StringBuf sb_stdin;
StringBuf sb_stdout;
@@ -1500,21 +1435,19 @@ static int rpmfcGenerateDependsHelper(const Spec spec, Package pkg, rpmfi fi)
continue;
failnonzero = 1;
tagflags = RPMSENSE_FIND_PROVIDES;
- /*@switchbreak@*/ break;
+ break;
case RPMTAG_REQUIREFLAGS:
if (!pkg->autoReq)
continue;
failnonzero = 0;
tagflags = RPMSENSE_FIND_REQUIRES;
- /*@switchbreak@*/ break;
+ break;
default:
continue;
- /*@notreached@*/ /*@switchbreak@*/ break;
+ break;
}
-/*@-boundswrite@*/
xx = rpmfcExec(dm->argv, sb_stdin, &sb_stdout, failnonzero);
-/*@=boundswrite@*/
if (xx == -1)
continue;
@@ -1582,7 +1515,6 @@ int rpmfcGenerateDepends(const Spec spec, Package pkg)
av = xcalloc(ac+1, sizeof(*av));
fmode = xcalloc(ac+1, sizeof(*fmode));
-/*@-boundswrite@*/
genConfigDeps = 0;
fi = rpmfiInit(fi, 0);
if (fi != NULL)
@@ -1597,7 +1529,6 @@ int rpmfcGenerateDepends(const Spec spec, Package pkg)
fmode[c] = rpmfiFMode(fi);
}
av[ac] = NULL;
-/*@=boundswrite@*/
fc = rpmfcNew();
fc->skipProv = !pkg->autoProv;
@@ -1687,13 +1618,11 @@ assert(ac == c);
p, c);
/* Add Provides: */
-/*@-branchstate@*/
if (fc->provides != NULL && (c = rpmdsCount(fc->provides)) > 0 && !fc->skipProv) {
p = (const void **) fc->provides->N;
xx = headerAddEntry(pkg->header, RPMTAG_PROVIDENAME, RPM_STRING_ARRAY_TYPE,
p, c);
/* XXX rpm prior to 3.0.2 did not always supply EVR and Flags. */
-/*@-nullpass@*/
p = (const void **) fc->provides->EVR;
assert(p != NULL);
xx = headerAddEntry(pkg->header, RPMTAG_PROVIDEVERSION, RPM_STRING_ARRAY_TYPE,
@@ -1702,18 +1631,14 @@ assert(p != NULL);
assert(p != NULL);
xx = headerAddEntry(pkg->header, RPMTAG_PROVIDEFLAGS, RPM_INT32_TYPE,
p, c);
-/*@=nullpass@*/
}
-/*@=branchstate@*/
/* Add Requires: */
-/*@-branchstate@*/
if (fc->requires != NULL && (c = rpmdsCount(fc->requires)) > 0 && !fc->skipReq) {
p = (const void **) fc->requires->N;
xx = headerAddEntry(pkg->header, RPMTAG_REQUIRENAME, RPM_STRING_ARRAY_TYPE,
p, c);
/* XXX rpm prior to 3.0.2 did not always supply EVR and Flags. */
-/*@-nullpass@*/
p = (const void **) fc->requires->EVR;
assert(p != NULL);
xx = headerAddEntry(pkg->header, RPMTAG_REQUIREVERSION, RPM_STRING_ARRAY_TYPE,
@@ -1722,9 +1647,7 @@ assert(p != NULL);
assert(p != NULL);
xx = headerAddEntry(pkg->header, RPMTAG_REQUIREFLAGS, RPM_INT32_TYPE,
p, c);
-/*@=nullpass@*/
}
-/*@=branchstate@*/
/* Add dependency dictionary(#dependencies) */
p = (const void **) argiData(fc->ddictx);
diff --git a/build/rpmfc.h b/build/rpmfc.h
index f7405c9b6..30171d725 100644
--- a/build/rpmfc.h
+++ b/build/rpmfc.h
@@ -3,14 +3,11 @@
#include "magic.h"
-/*@-exportlocal@*/
-/*@unchecked@*/
extern int _rpmfc_debug;
-/*@=exportlocal@*/
/**
*/
-typedef /*@abstract@*/ struct rpmfc_s * rpmfc;
+typedef struct rpmfc_s * rpmfc;
/**
*/
@@ -33,9 +30,7 @@ struct rpmfc_s {
ARGV_t ddict; /*!< (#dependencies) file depends dictionary */
ARGI_t ddictx; /*!< (#dependencies) file->dependency mapping */
-/*@relnull@*/
rpmds provides; /*!< (#provides) package provides */
-/*@relnull@*/
rpmds requires; /*!< (#requires) package requires */
StringBuf sb_java; /*!< concatenated list of java colored files. */
@@ -89,7 +84,6 @@ typedef enum FCOLOR_e FCOLOR_t;
/**
*/
struct rpmfcTokens_s {
-/*@observer@*/
const char * token;
int colors;
};
@@ -109,22 +103,15 @@ extern "C" {
* @retval *sb_stdoutp helper output
* @param failnonzero IS non-zero helper exit status a failure?
*/
-int rpmfcExec(ARGV_t av, StringBuf sb_stdin, /*@out@*/ StringBuf * sb_stdoutp,
- int failnonzero)
- /*@globals rpmGlobalMacroContext, h_errno, fileSystem, internalState @*/
- /*@modifies *sb_stdoutp, rpmGlobalMacroContext,
- fileSystem, internalState @*/
- /*@requires maxSet(sb_stdoutp) >= 0 @*/;
+int rpmfcExec(ARGV_t av, StringBuf sb_stdin, StringBuf * sb_stdoutp,
+ int failnonzero);
/**
* Return file color given file(1) string.
* @param fmstr file(1) string
* @return file color
*/
-/*@-exportlocal@*/
-int rpmfcColoring(const char * fmstr)
- /*@*/;
-/*@=exportlocal@*/
+int rpmfcColoring(const char * fmstr);
/**
* Print results of file classification.
@@ -133,31 +120,20 @@ int rpmfcColoring(const char * fmstr)
* @param fc file classifier
* @param fp output file handle (NULL for stderr)
*/
-/*@-exportlocal@*/
-void rpmfcPrint(/*@null@*/ const char * msg, rpmfc fc, /*@null@*/ FILE * fp)
- /*@globals fileSystem @*/
- /*@modifies *fp, fc, fileSystem @*/;
-/*@=exportlocal@*/
+void rpmfcPrint(const char * msg, rpmfc fc, FILE * fp);
/**
* Destroy a file classifier.
* @param fc file classifier
* @return NULL always
*/
-/*@-exportlocal@*/
-/*@null@*/
-rpmfc rpmfcFree(/*@only@*/ /*@null@*/ rpmfc fc)
- /*@modifies fc @*/;
-/*@=exportlocal@*/
+rpmfc rpmfcFree(rpmfc fc);
/**
* Create a file classifier.
* @return new file classifier
*/
-/*@-exportlocal@*/
-rpmfc rpmfcNew(void)
- /*@*/;
-/*@=exportlocal@*/
+rpmfc rpmfcNew(void);
/**
* Build file class dictionary and mappings.
@@ -166,21 +142,14 @@ rpmfc rpmfcNew(void)
* @param fmode files mode_t array (or NULL)
* @return 0 on success
*/
-/*@-exportlocal@*/
-int rpmfcClassify(rpmfc fc, ARGV_t argv, /*@null@*/ int16_t * fmode)
- /*@globals fileSystem, internalState @*/
- /*@modifies fc, fileSystem, internalState @*/;
-/*@=exportlocal@*/
+int rpmfcClassify(rpmfc fc, ARGV_t argv, int16_t * fmode);
/**
* Build file/package dependency dictionary and mappings.
* @param fc file classifier
* @return 0 on success
*/
-/*@-exportlocal@*/
-int rpmfcApply(rpmfc fc)
- /*@modifies fc @*/;
-/*@=exportlocal@*/
+int rpmfcApply(rpmfc fc);
/**
* Generate package dependencies.
@@ -188,10 +157,7 @@ int rpmfcApply(rpmfc fc)
* @param pkg package control
* @return 0 on success
*/
-int rpmfcGenerateDepends(const Spec spec, Package pkg)
- /*@globals rpmGlobalMacroContext, h_errno, fileSystem, internalState @*/
- /*@modifies pkg->cpioList, pkg->header,
- rpmGlobalMacroContext, fileSystem, internalState @*/;
+int rpmfcGenerateDepends(const Spec spec, Package pkg);
#ifdef __cplusplus
}
diff --git a/build/rpmspec.h b/build/rpmspec.h
index 763bd2cbf..161d3947f 100644
--- a/build/rpmspec.h
+++ b/build/rpmspec.h
@@ -14,10 +14,10 @@ typedef struct Package_s * Package;
*/
struct TriggerFileEntry {
int index;
-/*@only@*/ char * fileName;
-/*@only@*/ char * script;
-/*@only@*/ char * prog;
-/*@owned@*/ struct TriggerFileEntry * next;
+char * fileName;
+char * script;
+char * prog;
+struct TriggerFileEntry * next;
};
#define RPMBUILD_ISSOURCE (1 << 0)
@@ -30,33 +30,28 @@ struct TriggerFileEntry {
/** \ingroup rpmbuild
*/
struct Source {
-/*@owned@*/ char * fullSource;
-/*@dependent@*/ char * source; /* Pointer into fullSource */
+char * fullSource;
+char * source; /* Pointer into fullSource */
int flags;
int num;
-/*@owned@*/ struct Source * next;
+struct Source * next;
};
/** \ingroup rpmbuild
*/
-/*@-typeuse@*/
typedef struct ReadLevelEntry {
int reading;
-/*@dependent@*/
struct ReadLevelEntry * next;
} RLE_t;
-/*@=typeuse@*/
/** \ingroup rpmbuild
*/
typedef struct OpenFileInfo {
-/*@only@*/ const char * fileName;
+const char * fileName;
FD_t fd;
int lineNum;
char readBuf[BUFSIZ];
-/*@dependent@*/
char * readPtr;
-/*@owned@*/
struct OpenFileInfo * next;
} OFI_t;
@@ -66,14 +61,14 @@ typedef struct spectag_s {
int t_tag;
int t_startx;
int t_nlines;
-/*@only@*/ const char * t_lang;
-/*@only@*/ const char * t_msgid;
+const char * t_lang;
+const char * t_msgid;
} * spectag;
/** \ingroup rpmbuild
*/
typedef struct spectags_s {
-/*@owned@*/ spectag st_t;
+spectag st_t;
int st_nalloc;
int st_ntags;
} * spectags;
@@ -81,7 +76,7 @@ typedef struct spectags_s {
/** \ingroup rpmbuild
*/
typedef struct speclines_s {
-/*@only@*/ char **sl_lines;
+char **sl_lines;
int sl_nalloc;
int sl_nlines;
} * speclines;
@@ -90,40 +85,26 @@ typedef struct speclines_s {
* The structure used to store values parsed from a spec file.
*/
struct Spec_s {
-/*@only@*/
const char * specFile; /*!< Name of the spec file. */
-/*@only@*/
const char * buildRootURL;
-/*@only@*/
const char * buildSubdir;
-/*@only@*/
const char * rootURL;
-/*@owned@*/ /*@null@*/
speclines sl;
-/*@owned@*/ /*@null@*/
spectags st;
-/*@owned@*/
struct OpenFileInfo * fileStack;
char lbuf[10*BUFSIZ];
-/*@dependent@*/
char *lbufPtr;
char nextpeekc;
-/*@dependent@*/
char * nextline;
-/*@dependent@*/
char * line;
int lineNum;
-/*@owned@*/
struct ReadLevelEntry * readStack;
-/*@refcounted@*/
Header buildRestrictions;
-/*@owned@*/ /*@null@*/
Spec * BASpecs;
-/*@only@*/ /*@null@*/
const char ** BANames;
int BACount;
int recursing; /*!< parse is recursive? */
@@ -133,41 +114,27 @@ struct Spec_s {
int gotBuildRootURL;
-/*@null@*/
char * passPhrase;
int timeCheck;
-/*@null@*/
const char * cookie;
-/*@owned@*/
struct Source * sources;
int numSources;
int noSource;
-/*@only@*/
const char * sourceRpmName;
-/*@only@*/
unsigned char * sourcePkgId;
-/*@refcounted@*/
Header sourceHeader;
-/*@refcounted@*/
rpmfi sourceCpioList;
-/*@dependent@*/ /*@null@*/
MacroContext macros;
-/*@only@*/
StringBuf prep; /*!< %prep scriptlet. */
-/*@only@*/
StringBuf build; /*!< %build scriptlet. */
-/*@only@*/
StringBuf install; /*!< %install scriptlet. */
-/*@only@*/
StringBuf check; /*!< %check scriptlet. */
-/*@only@*/
StringBuf clean; /*!< %clean scriptlet. */
-/*@owned@*/
Package packages; /*!< Package list. */
};
@@ -175,46 +142,30 @@ struct Spec_s {
* The structure used to store values for a package.
*/
struct Package_s {
-/*@refcounted@*/
Header header;
-/*@refcounted@*/
rpmds ds; /*!< Requires: N = EVR */
-/*@refcounted@*/
rpmfi cpioList;
-/*@owned@*/
struct Source * icon;
int autoReq;
int autoProv;
-/*@only@*/
const char * preInFile; /*!< %pre scriptlet. */
-/*@only@*/
const char * postInFile; /*!< %post scriptlet. */
-/*@only@*/
const char * preUnFile; /*!< %preun scriptlet. */
-/*@only@*/
const char * postUnFile; /*!< %postun scriptlet. */
-/*@only@*/
const char * preTransFile; /*!< %pretrans scriptlet. */
-/*@only@*/
const char * postTransFile; /*!< %posttrans scriptlet. */
-/*@only@*/
const char * verifyFile; /*!< %verifyscript scriptlet. */
-/*@only@*/
StringBuf specialDoc;
-/*@only@*/
struct TriggerFileEntry * triggerFiles;
-/*@only@*/
const char * fileFile;
-/*@only@*/
StringBuf fileList; /* If NULL, package will not be written */
-/*@dependent@*/
Package next;
};
@@ -226,18 +177,14 @@ extern "C" {
* Create and initialize Spec structure.
* @return spec spec file control structure
*/
-/*@only@*/ Spec newSpec(void)
- /*@globals rpmGlobalMacroContext @*/
- /*@modifies rpmGlobalMacroContext @*/;
+Spec newSpec(void);
/** \ingroup rpmbuild
* Destroy Spec structure.
* @param spec spec file control structure
* @return NULL always
*/
-/*@null@*/ Spec freeSpec(/*@only@*/ /*@null@*/ Spec spec)
- /*@globals fileSystem, internalState @*/
- /*@modifies spec, fileSystem, internalState @*/;
+Spec freeSpec(Spec spec);
/** \ingroup rpmbuild
* Function to query spec file(s).
@@ -246,16 +193,11 @@ extern "C" {
* @param arg query argument
* @return 0 on success, else no. of failures
*/
-int rpmspecQuery(rpmts ts, QVA_t qva, const char * arg)
- /*@globals rpmGlobalMacroContext, h_errno,
- fileSystem, internalState @*/
- /*@modifies ts, qva, rpmGlobalMacroContext,
- fileSystem, internalState @*/;
+int rpmspecQuery(rpmts ts, QVA_t qva, const char * arg);
/** \ingroup rpmbuild
*/
-struct OpenFileInfo * newOpenFileInfo(void)
- /*@*/;
+struct OpenFileInfo * newOpenFileInfo(void);
/** \ingroup rpmbuild
* @param spec spec file control structure
@@ -263,8 +205,7 @@ struct OpenFileInfo * newOpenFileInfo(void)
* @param tag
* @param lang
*/
-spectag stashSt(Spec spec, Header h, int tag, const char * lang)
- /*@modifies spec->st @*/;
+spectag stashSt(Spec spec, Header h, int tag, const char * lang);
/** \ingroup rpmbuild
* @param spec spec file control structure
@@ -272,20 +213,14 @@ spectag stashSt(Spec spec, Header h, int tag, const char * lang)
* @param field
* @param tag
*/
-int addSource(Spec spec, Package pkg, const char * field, int tag)
- /*@globals rpmGlobalMacroContext, h_errno @*/
- /*@modifies spec->sources, spec->numSources,
- spec->st, spec->macros,
- pkg->icon,
- rpmGlobalMacroContext @*/;
+int addSource(Spec spec, Package pkg, const char * field, int tag);
/** \ingroup rpmbuild
* @param spec spec file control structure
* @param field
* @param tag
*/
-int parseNoSource(Spec spec, const char * field, int tag)
- /*@modifies nothing @*/;
+int parseNoSource(Spec spec, const char * field, int tag);
#ifdef __cplusplus
}
diff --git a/build/spec.c b/build/spec.c
index 13dba2620..c3272b334 100644
--- a/build/spec.c
+++ b/build/spec.c
@@ -12,23 +12,17 @@
#include "debug.h"
-/*@-redecl@*/
extern int specedit;
-/*@=redecl@*/
#define SKIPWHITE(_x) {while(*(_x) && (xisspace(*_x) || *(_x) == ',')) (_x)++;}
#define SKIPNONWHITE(_x){while(*(_x) &&!(xisspace(*_x) || *(_x) == ',')) (_x)++;}
-/*@access Header @*/ /* compared with NULL */
-/*@access rpmfi @*/ /* compared with NULL */
-
/**
* @param p trigger entry chain
* @return NULL always
*/
static inline
-/*@null@*/ struct TriggerFileEntry * freeTriggerFiles(/*@only@*/ /*@null@*/ struct TriggerFileEntry * p)
- /*@modifies p @*/
+struct TriggerFileEntry * freeTriggerFiles(struct TriggerFileEntry * p)
{
struct TriggerFileEntry *o, *q = p;
@@ -49,8 +43,7 @@ static inline
* @return NULL always
*/
static inline
-/*@null@*/ struct Source * freeSources(/*@only@*/ /*@null@*/ struct Source * s)
- /*@modifies s @*/
+struct Source * freeSources(struct Source * s)
{
struct Source *r, *t = s;
@@ -63,8 +56,7 @@ static inline
return NULL;
}
-/*@-boundswrite@*/
-int lookupPackage(Spec spec, const char *name, int flag, /*@out@*/Package *pkg)
+int lookupPackage(Spec spec, const char *name, int flag,Package *pkg)
{
const char *pname;
const char *fullName;
@@ -87,9 +79,7 @@ int lookupPackage(Spec spec, const char *name, int flag, /*@out@*/Package *pkg)
} else {
fullName = n = alloca(strlen(name)+1);
}
- /*@-mayaliasunique@*/
strcpy(n, name);
- /*@=mayaliasunique@*/
}
/* Locate package with fullName */
@@ -101,10 +91,9 @@ int lookupPackage(Spec spec, const char *name, int flag, /*@out@*/Package *pkg)
}
if (pkg)
- /*@-dependenttrans@*/ *pkg = p; /*@=dependenttrans@*/
+ *pkg = p;
return ((p == NULL) ? 1 : 0);
}
-/*@=boundswrite@*/
Package newPackage(Spec spec)
{
@@ -196,8 +185,7 @@ Package freePackages(Package packages)
/**
*/
-static inline /*@owned@*/ struct Source *findSource(Spec spec, int num, int flag)
- /*@*/
+static inline struct Source *findSource(Spec spec, int num, int flag)
{
struct Source *p;
@@ -207,7 +195,6 @@ static inline /*@owned@*/ struct Source *findSource(Spec spec, int num, int flag
return NULL;
}
-/*@-boundsread@*/
int parseNoSource(Spec spec, const char * field, int tag)
{
const char *f, *fe;
@@ -251,9 +238,7 @@ int parseNoSource(Spec spec, const char * field, int tag)
return 0;
}
-/*@=boundsread@*/
-/*@-boundswrite@*/
int addSource(Spec spec, Package pkg, const char *field, int tag)
{
struct Source *p;
@@ -265,7 +250,6 @@ int addSource(Spec spec, Package pkg, const char *field, int tag)
int num = 0;
buf[0] = '\0';
- /*@-branchstate@*/
switch (tag) {
case RPMTAG_SOURCE:
flag = RPMBUILD_ISSOURCE;
@@ -282,7 +266,6 @@ int addSource(Spec spec, Package pkg, const char *field, int tag)
fieldp = NULL;
break;
}
- /*@=branchstate@*/
/* Get the number */
if (tag != RPMTAG_ICON) {
@@ -333,9 +316,7 @@ int addSource(Spec spec, Package pkg, const char *field, int tag)
spec->numSources++;
if (tag != RPMTAG_ICON) {
- /*@-nullpass@*/ /* LCL: varargs needs null annotate. */
const char *body = rpmGetPath("%{_sourcedir}/", p->source, NULL);
- /*@=nullpass@*/
sprintf(buf, "%s%d",
(flag & RPMBUILD_ISPATCH) ? "PATCH" : "SOURCE", num);
@@ -348,63 +329,50 @@ int addSource(Spec spec, Package pkg, const char *field, int tag)
return 0;
}
-/*@=boundswrite@*/
/**
*/
-static inline /*@only@*/ /*@null@*/ speclines newSl(void)
- /*@*/
+static inline speclines newSl(void)
{
speclines sl = NULL;
- /*@-branchstate@*/
if (specedit) {
sl = xmalloc(sizeof(*sl));
sl->sl_lines = NULL;
sl->sl_nalloc = 0;
sl->sl_nlines = 0;
}
- /*@=branchstate@*/
return sl;
}
/**
*/
-/*@-boundswrite@*/
-static inline /*@null@*/ speclines freeSl(/*@only@*/ /*@null@*/ speclines sl)
- /*@modifies sl @*/
+static inline speclines freeSl(speclines sl)
{
int i;
if (sl == NULL) return NULL;
for (i = 0; i < sl->sl_nlines; i++)
- /*@-unqualifiedtrans@*/
sl->sl_lines[i] = _free(sl->sl_lines[i]);
- /*@=unqualifiedtrans@*/
sl->sl_lines = _free(sl->sl_lines);
return _free(sl);
}
-/*@=boundswrite@*/
/**
*/
-static inline /*@only@*/ /*@null@*/ spectags newSt(void)
- /*@*/
+static inline spectags newSt(void)
{
spectags st = NULL;
- /*@-branchstate@*/
if (specedit) {
st = xmalloc(sizeof(*st));
st->st_t = NULL;
st->st_nalloc = 0;
st->st_ntags = 0;
}
- /*@=branchstate@*/
return st;
}
/**
*/
-static inline /*@null@*/ spectags freeSt(/*@only@*/ /*@null@*/ spectags st)
- /*@modifies st @*/
+static inline spectags freeSt(spectags st)
{
int i;
if (st == NULL) return NULL;
@@ -427,9 +395,7 @@ Spec newSpec(void)
spec->st = newSt();
spec->fileStack = NULL;
-/*@-boundswrite@*/
spec->lbuf[0] = '\0';
-/*@=boundswrite@*/
spec->line = spec->lbuf;
spec->nextline = NULL;
spec->nextpeekc = '\0';
@@ -472,7 +438,7 @@ Spec newSpec(void)
spec->force = 0;
spec->anyarch = 0;
-/*@i@*/ spec->macros = rpmGlobalMacroContext;
+ spec->macros = rpmGlobalMacroContext;
return spec;
}
@@ -513,9 +479,7 @@ Spec freeSpec(Spec spec)
while (spec->readStack) {
rl = spec->readStack;
- /*@-dependenttrans@*/
spec->readStack = rl->next;
- /*@=dependenttrans@*/
rl->next = NULL;
rl = _free(rl);
}
@@ -533,18 +497,12 @@ Spec freeSpec(Spec spec)
spec->buildRestrictions = headerFree(spec->buildRestrictions);
if (!spec->recursing) {
-/*@-boundswrite@*/
if (spec->BASpecs != NULL)
while (spec->BACount--) {
- /*@-unqualifiedtrans@*/
spec->BASpecs[spec->BACount] =
freeSpec(spec->BASpecs[spec->BACount]);
- /*@=unqualifiedtrans@*/
}
-/*@=boundswrite@*/
- /*@-compdef@*/
spec->BASpecs = _free(spec->BASpecs);
- /*@=compdef@*/
}
spec->BANames = _free(spec->BANames);
@@ -559,7 +517,6 @@ Spec freeSpec(Spec spec)
return spec;
}
-/*@only@*/
struct OpenFileInfo * newOpenFileInfo(void)
{
struct OpenFileInfo *ofi;
@@ -568,9 +525,7 @@ struct OpenFileInfo * newOpenFileInfo(void)
ofi->fd = NULL;
ofi->fileName = NULL;
ofi->lineNum = 0;
-/*@-boundswrite@*/
ofi->readBuf[0] = '\0';
-/*@=boundswrite@*/
ofi->readPtr = NULL;
ofi->next = NULL;
@@ -583,8 +538,6 @@ struct OpenFileInfo * newOpenFileInfo(void)
*/
static void
printNewSpecfile(Spec spec)
- /*@globals fileSystem @*/
- /*@modifies spec->sl->sl_lines[], fileSystem @*/
{
Header h;
speclines sl = spec->sl;
@@ -595,7 +548,6 @@ printNewSpecfile(Spec spec)
if (sl == NULL || st == NULL)
return;
- /*@-branchstate@*/
for (i = 0; i < st->st_ntags; i++) {
spectag t = st->st_t + i;
const char * tn = tagName(t->t_tag);
@@ -609,19 +561,17 @@ printNewSpecfile(Spec spec)
Package pkg;
char *fe;
-/*@-bounds@*/
strcpy(fmt, t->t_msgid);
for (fe = fmt; *fe && *fe != '('; fe++)
{} ;
if (*fe == '(') *fe = '\0';
-/*@=bounds@*/
h = NULL;
for (pkg = spec->packages; pkg != NULL; pkg = pkg->next) {
const char *pkgname;
h = pkg->header;
(void) headerNVR(h, &pkgname, NULL, NULL);
if (!strcmp(pkgname, fmt))
- /*@innerbreak@*/ break;
+ break;
}
if (pkg == NULL || h == NULL)
h = spec->packages->header;
@@ -631,9 +581,7 @@ printNewSpecfile(Spec spec)
continue;
fmt[0] = '\0';
-/*@-boundswrite@*/
(void) stpcpy( stpcpy( stpcpy( fmt, "%{"), tn), "}");
-/*@=boundswrite@*/
msgstr = _free(msgstr);
/* XXX this should use queryHeader(), but prints out tn as well. */
@@ -643,28 +591,23 @@ printNewSpecfile(Spec spec)
return;
}
-/*@-boundswrite@*/
switch(t->t_tag) {
case RPMTAG_SUMMARY:
case RPMTAG_GROUP:
- /*@-unqualifiedtrans@*/
sl->sl_lines[t->t_startx] = _free(sl->sl_lines[t->t_startx]);
- /*@=unqualifiedtrans@*/
if (t->t_lang && strcmp(t->t_lang, RPMBUILD_DEFAULT_LANG))
continue;
{ char *buf = xmalloc(strlen(tn) + sizeof(": ") + strlen(msgstr));
(void) stpcpy( stpcpy( stpcpy(buf, tn), ": "), msgstr);
sl->sl_lines[t->t_startx] = buf;
}
- /*@switchbreak@*/ break;
+ break;
case RPMTAG_DESCRIPTION:
for (j = 1; j < t->t_nlines; j++) {
if (*sl->sl_lines[t->t_startx + j] == '%')
- /*@innercontinue@*/ continue;
- /*@-unqualifiedtrans@*/
+ continue;
sl->sl_lines[t->t_startx + j] =
_free(sl->sl_lines[t->t_startx + j]);
- /*@=unqualifiedtrans@*/
}
if (t->t_lang && strcmp(t->t_lang, RPMBUILD_DEFAULT_LANG)) {
sl->sl_lines[t->t_startx] = _free(sl->sl_lines[t->t_startx]);
@@ -673,14 +616,11 @@ printNewSpecfile(Spec spec)
sl->sl_lines[t->t_startx + 1] = xstrdup(msgstr);
if (t->t_nlines > 2)
sl->sl_lines[t->t_startx + 2] = xstrdup("\n\n");
- /*@switchbreak@*/ break;
+ break;
}
-/*@=boundswrite@*/
}
- /*@=branchstate@*/
msgstr = _free(msgstr);
-/*@-boundsread@*/
for (i = 0; i < sl->sl_nlines; i++) {
const char * s = sl->sl_lines[i];
if (s == NULL)
@@ -689,7 +629,6 @@ printNewSpecfile(Spec spec)
if (strchr(s, '\n') == NULL && s[strlen(s)-1] != '\n')
printf("\n");
}
-/*@=boundsread@*/
}
int rpmspecQuery(rpmts ts, QVA_t qva, const char * arg)
@@ -708,8 +647,7 @@ int rpmspecQuery(rpmts ts, QVA_t qva, const char * arg)
if (qva->qva_showPackage == NULL)
goto exit;
-/*@-branchstate@*/
- /*@-mods@*/ /* FIX: make spec abstract */
+ /* FIX: make spec abstract */
if (parseSpec(ts, arg, "/", buildRoot, recursing, passPhrase,
cookie, anyarch, force)
|| (spec = rpmtsSetSpec(ts, NULL)) == NULL)
@@ -718,8 +656,6 @@ int rpmspecQuery(rpmts ts, QVA_t qva, const char * arg)
_("query of specfile %s failed, can't parse\n"), arg);
goto exit;
}
- /*@=mods@*/
-/*@=branchstate@*/
res = 0;
if (specedit) {