After reviewing web only found 1 occurrence of a similar problem which
did not fit my case close enough to help.

Running kernel 2.4.22 this program below gives an expected syntax error
when I try to type the DATA, STAT, and CTRL. but with it removed I get
an invalid suffix or operand error.
I see numerous similar gcc related problems over time but no solution
was posted for the one instance of this error as it pertained to 'in'
and 'out'. Perhaps someone has knowledge of this problem (if one
exists) and a workaround.
1) How can I resolve the large integer to unsigned warning?
2) How can I resolve the suffix or operand error?

Program (line numbers at far left):
#35 #include // for ioperm in glibc
#37 #define DATA 0x378
#62 long DATA, STAT, CTRL; // Dumb, I know
#83 if (ioperm(DATA, 3, 1)) {perror("ioperm"); exit(1);}
#204 a = a + a + (inb(STAT) & 0x20);
#223 outb(0x100, DATA); // Needed to turn on bit 2 other outb's use 2
// e.g. 0x01 with no error

When run with line 62 the only errors are:
62: Syntax error before numeric constant
223: Warning: large integer implicitly truncated to unsigned type

Without 62 the errors are:
223: Warning [the same as above]
/tmp/xxxxxxxx/xxxxxx: 539: Error: suffix or operands invalid for 'in'
/tmp/xxxxxxxx/xxxxxx 559: Error: suffix or operands invalid for 'out'
These last two errors appear to be inline assembly errors which I do not
know how to view as the file is non-existent when I look for it.
I am really stumped any help is appreciated.