/* 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.
 */

#define ANSI 1  /* This file follows ANSI arithmetic rules, which may not work in non-ANSI modes */
#include "types.h"
int main()
	{
	extern char *Filename;
	auto CHAR Ac = 7;
#if ANSI
	auto SCHAR Asc = 8;
#endif
	auto SHORT As = 9;
	auto INT Ai = 10;
	auto UCHAR Auc = 21;
	auto USHORT Aus = 22;
	auto UINT Aui = 23;
	auto LONG Al = 14;
	auto ULONG Aul = 25;
	auto FLOAT Af = 16;
	auto DOUBLE Ad = 17;
#if ANSI
	auto LDOUBLE Ald = 18;
#endif
	{
	auto CHAR Bc = 7;
	auto CHAR *pBc = &Bc;
#if ANSI
	auto SCHAR Bsc = 8;
	auto SCHAR *pBsc = &Bsc;
#endif
	auto SHORT Bs = 9;
	auto SHORT *pBs = &Bs;
	auto INT Bi = 10;
	auto INT *pBi = &Bi;
	auto UCHAR Buc = 21;
	auto UCHAR *pBuc = &Buc;
	auto USHORT Bus = 22;
	auto USHORT *pBus = &Bus;
	auto UINT Bui = 23;
	auto UINT *pBui = &Bui;
	auto LONG Bl = 14;
	auto LONG *pBl = &Bl;
	auto ULONG Bul = 25;
	auto ULONG *pBul = &Bul;
	auto FLOAT Bf = 16;
	auto FLOAT *pBf = &Bf;
	auto DOUBLE Bd = 17;
	auto DOUBLE *pBd = &Bd;
#if ANSI
	auto LDOUBLE Bld = 18;
	auto LDOUBLE *pBld = &Bld;
#endif
	{
	int true = 1, false = 0;
	Filename =  " auto scalar auto pscalar1 mineq2 ";
	As = 9; *pBul = 25;
	As -= *pBul;
	iequals(__LINE__, As, (SHORT)(ULONG)-16);
	As = 9;
	iequals(__LINE__, As -= *pBul, (SHORT)(ULONG)-16);
	*pBul = 25; As = 9;
	*pBul -= As;
	lequals(__LINE__, *pBul, (ULONG)16L);
	*pBul = 25;
	lequals(__LINE__, *pBul -= As, (ULONG)16L);
	As = 9; *pBf = 16;
	As -= *pBf;
	iequals(__LINE__, As, (SHORT)-7);
	As = 9;
	iequals(__LINE__, As -= *pBf, (SHORT)-7);
	*pBf = 16; As = 9;
	*pBf -= As;
	dequals(__LINE__, *pBf, (FLOAT)7.);
	*pBf = 16;
	dequals(__LINE__, *pBf -= As, (FLOAT)7.);
	As = 9; *pBd = 17;
	As -= *pBd;
	iequals(__LINE__, As, (SHORT)-8);
	As = 9;
	iequals(__LINE__, As -= *pBd, (SHORT)-8);
	*pBd = 17; As = 9;
	*pBd -= As;
	dequals(__LINE__, *pBd, (DOUBLE)8.);
	*pBd = 17;
	dequals(__LINE__, *pBd -= As, (DOUBLE)8.);
#if ANSI
	As = 9; *pBld = 18;
	As -= *pBld;
	iequals(__LINE__, As, (SHORT)-9);
	As = 9;
	iequals(__LINE__, As -= *pBld, (SHORT)-9);
	*pBld = 18; As = 9;
	*pBld -= As;
	ldequals(__LINE__, *pBld, (LDOUBLE)9.L);
	*pBld = 18;
	ldequals(__LINE__, *pBld -= As, (LDOUBLE)9.L);
#endif
	Ai = 10; *pBc = 7;
	Ai -= *pBc;
	iequals(__LINE__, Ai, (INT)3);
	Ai = 10;
	iequals(__LINE__, Ai -= *pBc, (INT)3);
	*pBc = 7; Ai = 10;
	*pBc -= Ai;
	iequals(__LINE__, *pBc, (CHAR)-3);
	*pBc = 7;
	iequals(__LINE__, *pBc -= Ai, (CHAR)-3);
#if ANSI
	Ai = 10; *pBsc = 8;
	Ai -= *pBsc;
	iequals(__LINE__, Ai, (INT)2);
	Ai = 10;
	iequals(__LINE__, Ai -= *pBsc, (INT)2);
	*pBsc = 8; Ai = 10;
	*pBsc -= Ai;
	iequals(__LINE__, *pBsc, (SCHAR)-2);
	*pBsc = 8;
	iequals(__LINE__, *pBsc -= Ai, (SCHAR)-2);
#endif
	Ai = 10; *pBs = 9;
	Ai -= *pBs;
	iequals(__LINE__, Ai, (INT)1);
	Ai = 10;
	iequals(__LINE__, Ai -= *pBs, (INT)1);
	*pBs = 9; Ai = 10;
	*pBs -= Ai;
	iequals(__LINE__, *pBs, (SHORT)-1);
	*pBs = 9;
	iequals(__LINE__, *pBs -= Ai, (SHORT)-1);
	Ai = 10; *pBi = 10;
	Ai -= *pBi;
	iequals(__LINE__, Ai, (INT)0);
	Ai = 10;
	iequals(__LINE__, Ai -= *pBi, (INT)0);
	*pBi = 10; Ai = 10;
	*pBi -= Ai;
	iequals(__LINE__, *pBi, (INT)0);
	*pBi = 10;
	iequals(__LINE__, *pBi -= Ai, (INT)0);
	Ai = 10; *pBuc = 21;
	Ai -= *pBuc;
	iequals(__LINE__, Ai, (INT)-11);
	Ai = 10;
	iequals(__LINE__, Ai -= *pBuc, (INT)-11);
	*pBuc = 21; Ai = 10;
	*pBuc -= Ai;
	iequals(__LINE__, *pBuc, (UCHAR)11);
	*pBuc = 21;
	iequals(__LINE__, *pBuc -= Ai, (UCHAR)11);
	Ai = 10; *pBus = 22;
	Ai -= *pBus;
	iequals(__LINE__, Ai, (INT)-12);
	Ai = 10;
	iequals(__LINE__, Ai -= *pBus, (INT)-12);
	*pBus = 22; Ai = 10;
	*pBus -= Ai;
	iequals(__LINE__, *pBus, (USHORT)12);
	*pBus = 22;
	iequals(__LINE__, *pBus -= Ai, (USHORT)12);
	Ai = 10; *pBui = 23;
	Ai -= *pBui;
	iequals(__LINE__, Ai, (INT)(UINT)-13);
	Ai = 10;
	iequals(__LINE__, Ai -= *pBui, (INT)(UINT)-13);
	*pBui = 23; Ai = 10;
	*pBui -= Ai;
	iequals(__LINE__, *pBui, (UINT)13);
	*pBui = 23;
	iequals(__LINE__, *pBui -= Ai, (UINT)13);
	Ai = 10; *pBl = 14;
	Ai -= *pBl;
	iequals(__LINE__, Ai, (INT)-4);
	Ai = 10;
	iequals(__LINE__, Ai -= *pBl, (INT)-4);
	*pBl = 14; Ai = 10;
	*pBl -= Ai;
	lequals(__LINE__, *pBl, (LONG)4L);
	*pBl = 14;
	lequals(__LINE__, *pBl -= Ai, (LONG)4L);
	Ai = 10; *pBul = 25;
	Ai -= *pBul;
	iequals(__LINE__, Ai, (INT)(ULONG)-15);
	Ai = 10;
	iequals(__LINE__, Ai -= *pBul, (INT)(ULONG)-15);
	*pBul = 25; Ai = 10;
	*pBul -= Ai;
	lequals(__LINE__, *pBul, (ULONG)15L);
	*pBul = 25;
	lequals(__LINE__, *pBul -= Ai, (ULONG)15L);
	Ai = 10; *pBf = 16;
	Ai -= *pBf;
	iequals(__LINE__, Ai, (INT)-6);
	Ai = 10;
	iequals(__LINE__, Ai -= *pBf, (INT)-6);
	*pBf = 16; Ai = 10;
	*pBf -= Ai;
	dequals(__LINE__, *pBf, (FLOAT)6.);
	*pBf = 16;
	dequals(__LINE__, *pBf -= Ai, (FLOAT)6.);
	Ai = 10; *pBd = 17;
	Ai -= *pBd;
	iequals(__LINE__, Ai, (INT)-7);
	Ai = 10;
	iequals(__LINE__, Ai -= *pBd, (INT)-7);
	*pBd = 17; Ai = 10;
	*pBd -= Ai;
	dequals(__LINE__, *pBd, (DOUBLE)7.);
	*pBd = 17;
	dequals(__LINE__, *pBd -= Ai, (DOUBLE)7.);
#if ANSI
	Ai = 10; *pBld = 18;
	Ai -= *pBld;
	iequals(__LINE__, Ai, (INT)-8);
	Ai = 10;
	iequals(__LINE__, Ai -= *pBld, (INT)-8);
	*pBld = 18; Ai = 10;
	*pBld -= Ai;
	ldequals(__LINE__, *pBld, (LDOUBLE)8.L);
	*pBld = 18;
	ldequals(__LINE__, *pBld -= Ai, (LDOUBLE)8.L);
#endif
	Auc = 21; *pBc = 7;
	Auc -= *pBc;
	iequals(__LINE__, Auc, (UCHAR)14);
	Auc = 21;
	iequals(__LINE__, Auc -= *pBc, (UCHAR)14);
	*pBc = 7; Auc = 21;
	*pBc -= Auc;
	iequals(__LINE__, *pBc, (CHAR)-14);
	*pBc = 7;
	iequals(__LINE__, *pBc -= Auc, (CHAR)-14);
#if ANSI
	Auc = 21; *pBsc = 8;
	Auc -= *pBsc;
	iequals(__LINE__, Auc, (UCHAR)13);
	Auc = 21;
	iequals(__LINE__, Auc -= *pBsc, (UCHAR)13);
	*pBsc = 8; Auc = 21;
	*pBsc -= Auc;
	iequals(__LINE__, *pBsc, (SCHAR)-13);
	*pBsc = 8;
	iequals(__LINE__, *pBsc -= Auc, (SCHAR)-13);
#endif
	Auc = 21; *pBs = 9;
	Auc -= *pBs;
	iequals(__LINE__, Auc, (UCHAR)12);
	Auc = 21;
	iequals(__LINE__, Auc -= *pBs, (UCHAR)12);
	*pBs = 9; Auc = 21;
	*pBs -= Auc;
	iequals(__LINE__, *pBs, (SHORT)-12);
	*pBs = 9;
	iequals(__LINE__, *pBs -= Auc, (SHORT)-12);
	Auc = 21; *pBi = 10;
	Auc -= *pBi;
	iequals(__LINE__, Auc, (UCHAR)11);
	Auc = 21;
	iequals(__LINE__, Auc -= *pBi, (UCHAR)11);
	*pBi = 10; Auc = 21;
	*pBi -= Auc;
	iequals(__LINE__, *pBi, (INT)-11);
	*pBi = 10;
	iequals(__LINE__, *pBi -= Auc, (INT)-11);
	Auc = 21; *pBuc = 21;
	Auc -= *pBuc;
	iequals(__LINE__, Auc, (UCHAR)0);
	Auc = 21;
	iequals(__LINE__, Auc -= *pBuc, (UCHAR)0);
	*pBuc = 21; Auc = 21;
	*pBuc -= Auc;
	iequals(__LINE__, *pBuc, (UCHAR)0);
	*pBuc = 21;
	iequals(__LINE__, *pBuc -= Auc, (UCHAR)0);
	Auc = 21; *pBus = 22;
	Auc -= *pBus;
	iequals(__LINE__, Auc, (UCHAR)-1);
	Auc = 21;
	iequals(__LINE__, Auc -= *pBus, (UCHAR)-1);
	*pBus = 22; Auc = 21;
	*pBus -= Auc;
	iequals(__LINE__, *pBus, (USHORT)1);
	*pBus = 22;
	iequals(__LINE__, *pBus -= Auc, (USHORT)1);
	Auc = 21; *pBui = 23;
	Auc -= *pBui;
	iequals(__LINE__, Auc, (UCHAR)-2);
	Auc = 21;
	iequals(__LINE__, Auc -= *pBui, (UCHAR)-2);
	*pBui = 23; Auc = 21;
	*pBui -= Auc;
	iequals(__LINE__, *pBui, (UINT)2);
	*pBui = 23;
	iequals(__LINE__, *pBui -= Auc, (UINT)2);
	Auc = 21; *pBl = 14;
	Auc -= *pBl;
	iequals(__LINE__, Auc, (UCHAR)7);
	Auc = 21;
	iequals(__LINE__, Auc -= *pBl, (UCHAR)7);
	*pBl = 14; Auc = 21;
	*pBl -= Auc;
	lequals(__LINE__, *pBl, (LONG)-7L);
	*pBl = 14;
	lequals(__LINE__, *pBl -= Auc, (LONG)-7L);
	Auc = 21; *pBul = 25;
	Auc -= *pBul;
	iequals(__LINE__, Auc, (UCHAR)-4);
	Auc = 21;
	iequals(__LINE__, Auc -= *pBul, (UCHAR)-4);
	*pBul = 25; Auc = 21;
	*pBul -= Auc;
	lequals(__LINE__, *pBul, (ULONG)4L);
	*pBul = 25;
	lequals(__LINE__, *pBul -= Auc, (ULONG)4L);
	Auc = 21; *pBf = 16;
	Auc -= *pBf;
	iequals(__LINE__, Auc, (UCHAR)5);
	Auc = 21;
	iequals(__LINE__, Auc -= *pBf, (UCHAR)5);
	*pBf = 16; Auc = 21;
	*pBf -= Auc;
	dequals(__LINE__, *pBf, (FLOAT)-5.);
	*pBf = 16;
	dequals(__LINE__, *pBf -= Auc, (FLOAT)-5.);
	Auc = 21; *pBd = 17;
	Auc -= *pBd;
	iequals(__LINE__, Auc, (UCHAR)4);
	Auc = 21;
	iequals(__LINE__, Auc -= *pBd, (UCHAR)4);
	*pBd = 17; Auc = 21;
	*pBd -= Auc;
	dequals(__LINE__, *pBd, (DOUBLE)-4.);
	*pBd = 17;
	dequals(__LINE__, *pBd -= Auc, (DOUBLE)-4.);
#if ANSI
	Auc = 21; *pBld = 18;
	Auc -= *pBld;
	iequals(__LINE__, Auc, (UCHAR)3);
	Auc = 21;
	iequals(__LINE__, Auc -= *pBld, (UCHAR)3);
	*pBld = 18; Auc = 21;
	*pBld -= Auc;
	ldequals(__LINE__, *pBld, (LDOUBLE)-3.L);
	*pBld = 18;
	ldequals(__LINE__, *pBld -= Auc, (LDOUBLE)-3.L);
#endif
	Aus = 22; *pBc = 7;
	Aus -= *pBc;
	iequals(__LINE__, Aus, (USHORT)15);
	Aus = 22;
	iequals(__LINE__, Aus -= *pBc, (USHORT)15);
	*pBc = 7; Aus = 22;
	*pBc -= Aus;
	iequals(__LINE__, *pBc, (CHAR)-15);
	*pBc = 7;
	iequals(__LINE__, *pBc -= Aus, (CHAR)-15);
#if ANSI
	Aus = 22; *pBsc = 8;
	Aus -= *pBsc;
	iequals(__LINE__, Aus, (USHORT)14);
	Aus = 22;
	iequals(__LINE__, Aus -= *pBsc, (USHORT)14);
	*pBsc = 8; Aus = 22;
	*pBsc -= Aus;
	iequals(__LINE__, *pBsc, (SCHAR)-14);
	*pBsc = 8;
	iequals(__LINE__, *pBsc -= Aus, (SCHAR)-14);
#endif
	Aus = 22; *pBs = 9;
	Aus -= *pBs;
	iequals(__LINE__, Aus, (USHORT)13);
	Aus = 22;
	iequals(__LINE__, Aus -= *pBs, (USHORT)13);
	*pBs = 9; Aus = 22;
	*pBs -= Aus;
	iequals(__LINE__, *pBs, (SHORT)-13);
	*pBs = 9;
	iequals(__LINE__, *pBs -= Aus, (SHORT)-13);
	Aus = 22; *pBi = 10;
	Aus -= *pBi;
	iequals(__LINE__, Aus, (USHORT)12);
	Aus = 22;
	iequals(__LINE__, Aus -= *pBi, (USHORT)12);
	*pBi = 10; Aus = 22;
	*pBi -= Aus;
	iequals(__LINE__, *pBi, (INT)-12);
	*pBi = 10;
	iequals(__LINE__, *pBi -= Aus, (INT)-12);
	Aus = 22; *pBuc = 21;
	Aus -= *pBuc;
	iequals(__LINE__, Aus, (USHORT)1);
	Aus = 22;
	iequals(__LINE__, Aus -= *pBuc, (USHORT)1);
	*pBuc = 21; Aus = 22;
	*pBuc -= Aus;
	iequals(__LINE__, *pBuc, (UCHAR)-1);
	*pBuc = 21;
	iequals(__LINE__, *pBuc -= Aus, (UCHAR)-1);
	Aus = 22; *pBus = 22;
	Aus -= *pBus;
	iequals(__LINE__, Aus, (USHORT)0);
	Aus = 22;
	iequals(__LINE__, Aus -= *pBus, (USHORT)0);
	*pBus = 22; Aus = 22;
	*pBus -= Aus;
	iequals(__LINE__, *pBus, (USHORT)0);
	*pBus = 22;
	iequals(__LINE__, *pBus -= Aus, (USHORT)0);
	Aus = 22; *pBui = 23;
	Aus -= *pBui;
	iequals(__LINE__, Aus, (USHORT)-1);
	Aus = 22;
	iequals(__LINE__, Aus -= *pBui, (USHORT)-1);
	*pBui = 23; Aus = 22;
	*pBui -= Aus;
	iequals(__LINE__, *pBui, (UINT)1);
	*pBui = 23;
	iequals(__LINE__, *pBui -= Aus, (UINT)1);
	Aus = 22; *pBl = 14;
	Aus -= *pBl;
	iequals(__LINE__, Aus, (USHORT)8);
	Aus = 22;
	iequals(__LINE__, Aus -= *pBl, (USHORT)8);
	*pBl = 14; Aus = 22;
	*pBl -= Aus;
	lequals(__LINE__, *pBl, (LONG)-8L);
	*pBl = 14;
	lequals(__LINE__, *pBl -= Aus, (LONG)-8L);
	Aus = 22; *pBul = 25;
	Aus -= *pBul;
	iequals(__LINE__, Aus, (USHORT)-3);
	Aus = 22;
	iequals(__LINE__, Aus -= *pBul, (USHORT)-3);
	*pBul = 25; Aus = 22;
	*pBul -= Aus;
	lequals(__LINE__, *pBul, (ULONG)3L);
	*pBul = 25;
	lequals(__LINE__, *pBul -= Aus, (ULONG)3L);
	Aus = 22; *pBf = 16;
	Aus -= *pBf;
	iequals(__LINE__, Aus, (USHORT)6);
	Aus = 22;
	iequals(__LINE__, Aus -= *pBf, (USHORT)6);
	*pBf = 16; Aus = 22;
	*pBf -= Aus;
	dequals(__LINE__, *pBf, (FLOAT)-6.);
	*pBf = 16;
	dequals(__LINE__, *pBf -= Aus, (FLOAT)-6.);
	Aus = 22; *pBd = 17;
	Aus -= *pBd;
	iequals(__LINE__, Aus, (USHORT)5);
	Aus = 22;
	iequals(__LINE__, Aus -= *pBd, (USHORT)5);
	}}
	return 	report(Filename);
	}
