# ChangeLog for sys-devel/smatch
# Copyright 1999-2014 Gentoo Foundation; Distributed under the GPL v2
# $Header: /var/cvsroot/gentoo-x86/sys-devel/smatch/ChangeLog,v 1.5 2014/05/03 16:30:04 vapier Exp $

*smatch-1.59 (03 May 2014)

  03 May 2014; Mike Frysinger <vapier@gentoo.org> +smatch-1.59.ebuild,
  smatch-9999.ebuild:
  Version bump #509290 by MJJoker.

*smatch-1.57-r1 (03 Jan 2013)

  03 Jan 2013; Mike Frysinger <vapier@gentoo.org>
  +files/smatch-1.57-restrict.patch, +smatch-1.57-r1.ebuild:
  Ignore __restrict__ field w/patch from ChromiumOS.

*smatch-1.57 (20 Dec 2012)

  20 Dec 2012; Mike Frysinger <vapier@gentoo.org> +smatch-1.57.ebuild,
  smatch-9999.ebuild:
  Version bump.

  21 Sep 2011; Michał Górny <mgorny@gentoo.org> smatch-9999.ebuild:
  Migrate to git-2.

*smatch-9999 (08 Sep 2011)

  08 Sep 2011; Mike Frysinger <vapier@gentoo.org> +smatch-9999.ebuild,
  +metadata.xml:
  Initial ebuild.
