PellesC Version 5.00 Beta 1

Started by Vortex, January 28, 2008, 06:15:22 PM

Previous topic - Next topic

Vortex

The installer ( avoid installing on top of an older version ) :

http://www.smorgasbordet.com/pellesc/500/setup.exe

Major changes between 4.50.0 and 5.00.0 :

http://www.smorgasbordet.com/pellesc/changes_450_500.htm

Adamanteus

My opinion : excellent compiler  :(, but exists some remarks :

a) not well counting of prototypes in headers :

Memory.c(47): warning #2027: Missing prototype for 'memavail'.
Memory.c(64): warning #2027: Missing prototype for 'maxavail'.

b) and not well const qualifier, mean outside call could be and ordinary variable :

char    ducmp(const grant* number1,const grant* number2)
...
grant  mirror, num;
while(gucmp(&mirror,&num) > 0)
Index.c(224): error #2140: Type error in argument 1 to 'ducmp'; found 'grant (*)', expected 'const unsigned long int (*)[2]'.

c) not vell pointer types compare :

char*   stristalk(const char* string,const char sim) {
unsigned char *substr = addptr(string,strlen(string));
while (substr != string)

Strings.c(183): error #2168: Operands of != have incompatible types 'unsigned char *' and 'const char *'.

Wannabe

Be sure to report it to Pelle in his forum http://forum.pellesc.de/index.php?topic=2369.0
That's what betas are for  :wink

Vortex

Version 5.00 Beta 2 available :

http://www.smorgasbordet.com/pellesc/500/setup.exe

(for 32-bit Windows 2K/XP/Vista; avoid installing on top of an older version)

http://www.smorgasbordet.com/pellesc/download.htm

Quote
    * Added relocation section to resource-only DLLs in the Bin\Intl subdirectory (apparently needed on some computers).
    * Added some missing (GUID) libraries to the 64-bit Setup.
    * Fixed a typedef problem in addin.h for ANSI mode (UNICODE/_UNICODE not defined).
    * Added 'CALLBACK' to list of special Windows symbols in pobr(64).dll - will help with some 'type (CALLBACK *pfnMember)(...)' declarations.
    * Fixed problem with symbol annotations in debugger and PODUMP disassembler.
    * Added check for sysdefs.tag file in POIDE folder (if moved there manually).
    * Fixed some problems with INVOKE and stack parameters in POASM (AMD64 mode, parameter 5+).
    * Fixed sort-by-address problem in POVIEWP64.
    * Fixed a compiler problem with <floating-point-expression>*I in AMD64 backend.

Vortex

Version 5.00 Beta 3 available :

http://www.smorgasbordet.com/pellesc/download.htm

(for 32-bit Windows 2K/XP/Vista; avoid installing on top of an older version)

Quote
    * Added missing calling convention to some prototypes in winbase.h and winnt.h.
    * Fixed CreateDesktop() versioning, and added CreateDesktopEx() prototype in winuser.h.
    * Fixed some target size problems in inttypes.h and stdint.h.
    * IDE: fixed missing code signing tab, in project options, for a new (not upgraded) project.
    * IDE: fixed problem with console executable being locked after a debugging session (Windows Vista).
    * IDE: fixed linker option /largeaddressaware on linker tab, in project options.
    * IDE: when jumping to a source line from the Project or Output tab, the entire line will now be selected.
    * POMAKE: will now also define command line macros before processing make files (for preprocessing conditions to work).
    * POCC: fixed argument handling when expanding inline functions (including better handling of some side effects).
    * POCC: fixed a problem where a fastcall argument wasn't always spilled when it's address was taken (X86).
    * POCC: fixed a problem with address calculations for LDR/STR instructions (ARM).
    * POCC: added _PreLoad() intrinsic (ARM).
    * POCC: fixed problem with wide string literals in _Pragma operator.
    * POCC: added a few more cases for warning #2215 (narrowing conversion).

Vortex

Version 5.00 Beta 4 available :

http://www.smorgasbordet.com/pellesc/500/setup.exe

(for 32-bit Windows 2K/XP/Vista; avoid installing on top of an older version)

Quote* IDE: fixed buffer size error for MENUBAR resource (Windows CE), possibly causing a corrupt string table (buffer size was in chars, but must be wide chars for v5.0).
    * POCC: Fixed (rare) case when strlen, wcslen, strnlen_s, wcsnlen_s intrinsic wasn't inlined.
    * POCC: Fixed problem when a call to a void function ended a __try block in a __try - __except statement (X64).
    * POCC: Fixed off-by-one buffer refill problem for line splicing (bug introduced june 2000, obviously uncommon).
    * POCC: Fixed a problem where a volatile reference could be optimized away.
    * POCC: Fixed problem with not being able to turn off memcpy intrinsic using #pragma function (ARM).
    * POCC: Fixed a problem with struct copy, and intrinsic memcpy, copying unaligned words (ARM).
    * POCC: fixed yet another problem with address calculations (ARM).
    * POCC: Added a few more expression simplification cases.
    * POCC: Removed some superfluous byte and word specifiers from the assembly output (harmless, but silly looking).

Pelle

Vortex

Version 5.00 released :

http://www.smorgasbordet.com/pellesc/500/setup.exe

(for 32-bit Windows 2K/XP/Vista; avoid installing on top of an older version)

Major changes between 4.50.0 and 5.00.0 :

http://www.smorgasbordet.com/pellesc/changes_450_500.htm


Vortex

Version 5.00.1 uploaded :

http://www.smorgasbordet.com/pellesc/500/setup.exe

Quote# Bugfix [5.00.1]: a return statement, using the conditional operator (?:), containing a fetch with postfix increment (*p++), usually turned the postfix increment into a prefix increment (X86, X64).
# Bugfix [5.00.1]: a float-to-integer conversion, in standard C mode, without optimizations, produced the wrong code sequence (X86).