There is a small setup overhead for the main, but for example this certainly does NOT synthesize "to a large collection of gates and flip-flps" as you so errantly assert cluelessly:
main() {
int a:1,b:1,c:1,d:1; #pragma inputport (a); #pragma inputport (b); #pragma inputport (c); #pragma inputport (d);
int sum_of_products:1; #pragma outputport (sum_of_products);
while(1) { sum_of_products = (a&b) | (c&d); } }
Produces the following default output (fpgac -S example.c) as example.xnf: LCANET, 4 PWR, 1, VCC PWR, 0, GND PROG, fpgac, 4.1, "Thu Nov 10 19:42:27 2005" PART, xcv2000ebg560-8 SYM, CLK-AA, BUFGS PIN, I, I, CLKin PIN, O, O, CLK END SYM, FFin-0_1_0Running, INV PIN, I, I, 0_1_0Zero PIN, O, O, FFin-0_1_0Running END SYM, 0_1_0Running, DFF PIN, D, I, FFin-0_1_0Running PIN, C, I, CLK PIN, CE, I, VCC PIN, Q, O, 0_1_0Running END SYM, FFin-0_1_0Zero, BUF PIN, I, I, 0_1_0Zero PIN, O, O, FFin-0_1_0Zero END SYM, 0_1_0Zero, DFF PIN, D, I, FFin-0_1_0Zero PIN, C, I, CLK PIN, CE, I, VCC PIN, Q, O, 0_1_0Zero END SYM, 0_4__a, IBUF PIN, I, I, a PIN, O, O, 0_4__a END EXT, a, I SYM, 0_4__b, IBUF PIN, I, I, b PIN, O, O, 0_4__b END EXT, b, I SYM, 0_4__c, IBUF PIN, I, I, c PIN, O, O, 0_4__c END EXT, c, I SYM, 0_4__d, IBUF PIN, I, I, d PIN, O, O, 0_4__d END EXT, d, I SYM, 0_10__sum_of_products-OBUF, OBUF PIN, I, I, 0_10__sum_of_products PIN, O, O, sum_of_products END EXT, sum_of_products, O SYM, FFin-0_10__sum_of_products, BUF PIN, I, I, T0_15L49_0_10__sum_of_products PIN, O, O, FFin-0_10__sum_of_products END SYM, 0_10__sum_of_products, DFF PIN, D, I, FFin-0_10__sum_of_products PIN, C, I, CLK PIN, CE, I, 0_13_L21looptop PIN, Q, O, 0_10__sum_of_products END SYM, FFin-0_13_L21looptop, EQN, EQN=((~I1)+(I0)) PIN, I1, I, 0_1_0Running PIN, I0, I, 0_13_L21looptop PIN, O, O, FFin-0_13_L21looptop END SYM, 0_13_L21looptop, DFF PIN, D, I, FFin-0_13_L21looptop PIN, C, I, CLK PIN, CE, I, VCC PIN, Q, O, 0_13_L21looptop END SYM, SYMT0_15L49_0_10__sum_of_products, EQN, EQN=((I0*I1)+(I2*I3)) PIN, I3, I, 0_4__a PIN, I2, I, 0_4__b PIN, I1, I, 0_4__c PIN, I0, I, 0_4__d PIN, O, O, T0_15L49_0_10__sum_of_products END EOF