On Fri, Dec 16, 2016 at 02:54:42PM +0100, Julia Lawall wrote: > Could you send me the original .c file, preferably cut down to show only > the error? > > For --parse-c, most of the interestingoutput is on stderr.
Hi Julia, Yes -- stderr was redirected to those files anyway. Please see the attached .c file which just contains a sample function which isn't being matched. Kindly, Thomas
/*- * Copyright (c) 2011-2016 Baptiste Daroussin <[email protected]> * Copyright (c) 2011-2012 Julien Laffaye <[email protected]> * Copyright (c) 2012 Bryan Drewery <[email protected]> * Copyright (c) 2013 Matthew Seaman <[email protected]> * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer * in this position and unchanged. * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * THIS SOFTWARE IS PROVIDED BY THE AUTHOR(S) ``AS IS'' AND ANY EXPRESS OR * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. * IN NO EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY DIRECT, INDIRECT, * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ #include <archive.h> #include <archive_entry.h> #include <assert.h> #include <errno.h> #include <fcntl.h> #include <string.h> #include "pkg.h" #include "private/event.h" #include "private/pkg.h" #include "private/pkgdb.h" #include "private/utils.h" static int pkg_vset(struct pkg *pkg, va_list ap) { int attr; const char *buf; ucl_object_t *obj; struct pkg_message *msg; while ((attr = va_arg(ap, int)) > 0) { if (attr >= PKG_NUM_FIELDS || attr <= 0) { pkg_emit_error("Bad argument on pkg_set %d", attr); return (EPKG_FATAL); } switch (attr) { case PKG_NAME: free(pkg->name); pkg->name = strdup(va_arg(ap, const char *)); free(pkg->uid); pkg->uid = strdup(pkg->name); break; case PKG_ORIGIN: free(pkg->origin); pkg->origin = strdup(va_arg(ap, const char *)); break; case PKG_VERSION: free(pkg->version); pkg->version = strdup(va_arg(ap, const char *)); break; case PKG_COMMENT: free(pkg->comment); pkg->comment = strdup(va_arg(ap, const char *)); break; case PKG_DESC: free(pkg->desc); pkg->desc = strdup(va_arg(ap, const char *)); break; case PKG_MTREE: (void)va_arg(ap, const char *); break; case PKG_MESSAGE: LL_FOREACH(pkg->message, msg) { pkg_message_free(msg); } buf = va_arg(ap, const char *); if (*buf == '[') { pkg_message_from_str(pkg, buf, strlen(buf)); } else { obj = ucl_object_fromstring_common(buf, strlen(buf), UCL_STRING_RAW|UCL_STRING_TRIM); pkg_message_from_ucl(pkg, obj); ucl_object_unref(obj); } break; case PKG_ARCH: free(pkg->arch); pkg->arch = strdup(va_arg(ap, const char *)); break; case PKG_ABI: free(pkg->abi); pkg->abi = strdup(va_arg(ap, const char *)); break; case PKG_MAINTAINER: free(pkg->maintainer); pkg->maintainer = strdup(va_arg(ap, const char *)); break; case PKG_WWW: free(pkg->www); pkg->www = strdup(va_arg(ap, const char *)); break; case PKG_PREFIX: free(pkg->prefix); pkg->prefix = strdup(va_arg(ap, const char *)); break; case PKG_REPOPATH: free(pkg->repopath); pkg->repopath = strdup(va_arg(ap, const char *)); break; case PKG_CKSUM: free(pkg->sum); pkg->sum = strdup(va_arg(ap, const char *)); break; case PKG_OLD_VERSION: free(pkg->old_version); pkg->old_version = strdup(va_arg(ap, const char *)); break; case PKG_REPONAME: free(pkg->reponame); pkg->reponame = strdup(va_arg(ap, const char *)); break; case PKG_REPOURL: free(pkg->repourl); pkg->repourl = strdup(va_arg(ap, const char *)); break; case PKG_DIGEST: free(pkg->digest); pkg->digest = strdup(va_arg(ap, const char *)); break; case PKG_REASON: free(pkg->reason); pkg->reason = strdup(va_arg(ap, const char *)); break; case PKG_FLATSIZE: pkg->flatsize = va_arg(ap, int64_t); break; case PKG_OLD_FLATSIZE: pkg->old_flatsize = va_arg(ap, int64_t); break; case PKG_PKGSIZE: pkg->pkgsize = va_arg(ap, int64_t); break; case PKG_LICENSE_LOGIC: pkg->licenselogic = (lic_t)va_arg(ap, int); break; case PKG_AUTOMATIC: pkg->automatic = (bool)va_arg(ap, int); break; case PKG_ROWID: pkg->id = va_arg(ap, int64_t); break; case PKG_LOCKED: pkg->locked = (bool)va_arg(ap, int); break; case PKG_TIME: pkg->timestamp = va_arg(ap, int64_t); break; case PKG_DEP_FORMULA: free(pkg->dep_formula); pkg->dep_formula = strdup(va_arg(ap, const char *)); break; case PKG_VITAL: pkg->vital = (bool)va_arg(ap, int); break; } } return (EPKG_OK); }
_______________________________________________ Cocci mailing list [email protected] https://systeme.lip6.fr/mailman/listinfo/cocci
