/* The Plum Hall Validation Suite for C
 * Unpublished copyright (c) 1986-1991, Chiron Systems Inc and Plum Hall Inc.
 * VERSION: 4
 * DATE: 1993-01-01
 * The "ANSI" mode of the Suite corresponds to the official ANSI C, X3.159-1989.
 * As per your license agreement, your distribution is not to be moved or copied outside the Designated Site
 * without specific permission from Plum Hall Inc.
 */

/****************************************************************************
 ** Self-checking C source code generated by EGEN component of             **
 **    The Plum Hall Validation Suite for C.                               **
 **    (C) 1986-1988 Chiron Systems Inc and Plum Hall Inc                  **
 **    EGEN Version 1.09.000  88/08/21                                     **
 **                                                                        **
 **    EGEN -P -R7 -V -A -N5 -Dinteger.gen ( @ @ ) @ ( @ @ )               **
 ****************************************************************************/
#include "defs.h"


int main()
	{
	extern char *Filename;
	auto unsigned int ui;
	static unsigned int * pui;
	auto unsigned int ** ppui;
	auto int i;
	static int * pi;
	auto int ** ppi;
	auto unsigned short us;
	static unsigned short * pus;
	auto unsigned short ** ppus;
	auto short s;
	static short * ps;
	auto short ** pps;
	auto unsigned char uc;
	static unsigned char * puc;
	auto unsigned char ** ppuc;
	auto char c;
	static char * pc;
	auto char ** ppc;
	auto unsigned long ul;
	static unsigned long * pul;
	auto unsigned long ** ppul;
	auto long l;
	static long * pl;
	auto long ** ppl;
	register int rint1;
	register int rint2;
	register int rint3;
	register int rint4;
	register int rint5;

	ui = ivalue(100);
	pui = &ui;
	ppui = &pui;
	i = ivalue(10);
	pi = &i;
	ppi = &pi;
	us = lvalue(33000);
	pus = &us;
	ppus = &pus;
	s = ivalue(13);
	ps = &s;
	pps = &ps;
	uc = ivalue(128);
	puc = &uc;
	ppuc = &puc;
	c = ivalue(20);
	pc = &c;
	ppc = &pc;
	ul = lvalue(65000L);
	pul = &ul;
	ppul = &pul;
	l = lvalue(97L);
	pl = &l;
	ppl = &pl;
	rint1 = ivalue(1);
	rint2 = ivalue(2);
	rint3 = ivalue(3);
	rint4 = ivalue(4);
	rint5 = ivalue(5);
	Filename = "int7.c";

	/* 0x64 < 3 => 0 */
	/* 1 != 0 => 1 */
	iequals(__LINE__, ((rint1 != (*pui < rint3)) || (**ppul ^= (*ps /= l))), 1);
	iequals(__LINE__, s, 13);
	lequals(__LINE__, ul, 65000L);

	/* ! 0x64 => 0 */
	/* 13 << 0 => 13 */
	/* 20 && 1 => 1 */
	/* 10 |= 1 => 11 */
	/* 13 - 11 => 2 */
	iequals(__LINE__, ((*ps << ( ! *pui)) - (i |= (c && rint1))), 2);
	iequals(__LINE__, i, 11);

	/* 5 ^ 2 => 7 */
	/* 7 && 20 => 1 */
	/* post-- 0x7f => 0x80 */
	/* 13 = 0x80 => 128 */
	/* 1 - 128 => -127 */
	iequals(__LINE__, (((rint5 ^ rint2) && **ppc) - (*ps = ((**ppuc)-- ))), -127);
	iequals(__LINE__, uc, (unsigned)127);
	iequals(__LINE__, s, 128);

	/* 11 - 2 => 9 */
	/* 128 /= 9 => 14 */
	/* 97L + 20 => 117L */
	/* 20 && 117L => 1 */
	/* 14 + 1 => 15 */
	iequals(__LINE__, ((**pps /= (**ppi - rint2)) + (**ppc && (*pl + **ppc))), 15);
	iequals(__LINE__, s, 14);

	/* 97L < 3 => 0 */
	/* 0x7f += 0 => 0x7f */
	/* pre-- 1 => 0 */
	/* 20 ^ 0 => 20 */
	/* 127 != 20 => 1 */
	iequals(__LINE__, ((uc += (**ppl < rint3)) != (**ppc ^ ( -- rint1))), 1);
	iequals(__LINE__, rint1, 0);
	iequals(__LINE__, uc, (unsigned)127);

	return 	report(Filename);
	}
