ACSUtils Wiki

An ACS library for ZDoom-based ports

User Tools

Site Tools


gdcc

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
gdcc [2017/06/12 18:54] – created korshungdcc [2017/07/14 16:18] (current) korshun
Line 1: Line 1:
 +{{tag>acs_compilers}}
 ====== GDCC ====== ====== GDCC ======
-GDCC is an alternative ACS compiler.+GDCC is an alternative ACS compiler, and also a standards-compliant compiler of the [[wp>C programming language]] to ACS VM bytecode. 
 + 
 +The ACS compiler part of GDCC is called **GDCC-ACC**. The rest is the C compiler. 
 + 
 +  * **ZDoom forums:** https://forum.zdoom.org/viewtopic.php?f=19&t=32078 
 +  * **GitHub:** https://github.com/DavidPH/GDCC 
 + 
 +===== Known bugs ===== 
 + 
 +==== Missing "return" statement executes random other function's code ==== 
 + 
 +<note warning>This bug is extremely hard to detect.</note> 
 + 
 +<code> 
 +function int f(void) 
 +
 +    DoSomething(); 
 +    // accidentally wrote "int" instead of "void" 
 +    // This function will now proceed to some other random function's code 
 +
 +</code> 
 + 
 +Functions that return a value but don't have "return" in the code **will execute some other random function's code** due to the compiler ignoring the missing return statement. 
 + 
 +==== Functions without forward declarations can be called incorrectly ==== 
 + 
 +<code> 
 +function void f(void) 
 +
 +    int x = g(1, 2, 3); 
 +    print(d:x); 
 +
 + 
 +function void g(void) 
 +
 +    // This function does NOT return a value 
 +    // and does NOT accept 3 arguments. 
 +
 +</code> 
 + 
 +If a function is used before it's declared, GDCC allows ANY call to the function, unlike [[ACC]] and [[BCC]]. 
 + 
 +==== Compiler errors result in 0 bytes compiled ACS ==== 
 + 
 +Some fatal compiler errors do not result in an error message, but in a compiled ACS file that is 0 bytes long. 
 + 
 +==== Incomprehensible compiler errors ==== 
 + 
 +''Bad gen Retn'' means that the name of the function is already used elsewhere. 
  
-ZDoom forums: https://forum.zdoom.org/viewtopic.php?f=19&t=32078 
-GitHub: https://github.com/DavidPH/GDCC 
gdcc.1497282869.txt.gz · Last modified: 2017/06/12 18:54 by korshun