The MASM Forum

Projects => Poasm => Pelle's C compiler and tools => Topic started by: Vortex on May 28, 2012, 04:43:46 AM

Title: PellesC V7.0, Release Candidate #3
Post by: Vortex on May 28, 2012, 04:43:46 AM
Pelles C version 7.00, RC #3 :

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

RC #3 changes by Pelle :

QuoteFixed problem in compiler optimizer with too aggressive demotion of "bitwise not" expressions in some contexts (the code compiled, but gave the wrong result).
Fixed problem in compiler optimizer where dead code from loop transformations wasn't cleaned out fast enough, causing a crash in a later pass (if unlucky).
Fixed problem in compiler with uncommon initializer expression of type: "literal string" + offset (the code didn't compile).
Fixed problem in compiler with target label of X64 unwind (multiple labels at the same address; the code didn't compile).
Fixed problem in compiler with __asm nested inside __asm {} (the code didn't compile).
Fixed problem in the IDE when renaming a resource label to a new name and then back again ("delete" label, followed by "un-delete" of the same label).
Fixed problem in the IDE with saving OEM-encoded text files (loading has never been supported).
Fixed problem in the IDE with arguments containing "double quotation mark" passed to console mode programs (assuming this blog is correct: http://blogs.msdn.com/b/twistylittlepassagesallalike/archive/2011/04/23/everyone-quotes-arguments-the-wrong-way.aspx).
Fixed some missing exports from POCRT64.DLL, and added a few modules for static linking to POCRT.LIB and POCRT64.LIB.
Removed from the IDE macro expansion in "Project options" for "Command line arguments" and "Working directory" (thinking about it some more, the loss of functionality should be less important than the fact that this is "easier to understand"). If you use the '$'-character in one of those fields, you should re-check it.
Added to the IDE more sanity checks of directories in "Advanced" options for the "New project" dialog.
Revised code in the IDE for reading and writing project and workspace files; this includes, but is not limited to, the special handling of the LIB, INCLUDE, POC_PROJECT_OUTPUTDIR, POC_PROJECT_RESULTDIR, POC_PROJECT_WORKPATH symbols.
Revised code in the IDE for creating new directories; The IDE can now create any number of missing intermediate directories. Feel free to litter your disk with useless directories, for example when creating new projects...
Corrected fix in resource compiler when a separator ended a popup in a MENU resource (one flag too much set; unsure if it matters or not).
Completed fix from 2002-04-04 in the linker for /MAPINFO:LINES, so linenumbers in MAP-files should now be correct (in case you didn't notice in the last 10 years).
Annotations from __declspec(vaformat(...)) and __declspec(release()) are now added to function definitions too (not just declarations).
Updated French translation, thanks to Kloster Yvan.
Title: Re: PellesC V7.0, Release Candidate #3
Post by: jj2007 on May 28, 2012, 06:49:23 AM
Quote from: Vortex on May 28, 2012, 04:43:46 AM
RC #3 changes by Pelle :

QuoteCompleted fix from 2002-04-04 in the linker for /MAPINFO:LINES, so linenumbers in MAP-files should now be correct (in case you didn't notice in the last 10 years).

Works perfectly now (http://www.masm32.com/board/index.php?topic=12460.msg160006#msg160006), thanks a lot!
polink SkelTryCatch.map:
Line numbers for SkelTryCatch.obj(Tmp_File.asm) segment .text
     8 0001:00000000    11 0001:00000000    12 0001:00000036    14 0001:00000038
    17 0001:0000005b    19 0001:00000060    20 0001:00000078    21 0001:0000007d


link 5.12.8078 SkelTryCatch.map:
Line numbers for SkelTryCatch.obj(Tmp_File.asm) segment .text
     8 0001:00000000     8 0001:00000000    11 0001:00000034    11 0001:00000034
    12 0001:00000036    14 0001:00000038    17 0001:0000005b    19 0001:00000060


Note the repetition in Microsoft's linker... so polink is actually better, as usual :biggrin:
Title: Re: PellesC V7.0, Release Candidate #3
Post by: Vortex on June 19, 2012, 04:00:35 AM
Version 7.00, Release Candidate 4 announced by Pelle :

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

General changes:

http://www.smorgasbordet.com/pellesc/changes_650_700.htm (http://www.smorgasbordet.com/pellesc/changes_650_700.htm)
Title: Re: PellesC V7.0, Release Candidate #3
Post by: Vortex on July 09, 2012, 07:21:17 PM
Pelles C version 7.00 is now available for download :

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

Pelle's announcement :

QuoteChanges from RC4:
Fixed problem in the compiler with inline assembly statements comparing equal when they really wasn't (the code compiled, but gave the wrong result).
Fixed problem in the IDE with single quotes not being escaped properly for the SQL statement(s) saving a snippet.
Added to the IDE support for creating/adding a new empty .htm file to a project ("Other files").
Title: Re: PellesC V7.0, Release Candidate #3
Post by: Vortex on September 25, 2012, 03:46:05 AM
Pelles C version 7.00 (refresh) is now available for download.

Pelle's announcement :

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

General changes:
http://www.smorgasbordet.com/pellesc/changes_650_700.htm (http://www.smorgasbordet.com/pellesc/changes_650_700.htm)

QuoteChanges:
Fixed problem in scanf() family of C runtime functions with "multibyte" to wide character conversion (for %lc, %ls etc.). The wscanf() family of functions are not affected (no conversion needed).
Fixed problem with some C include files in C11 mode, with internal __declspec(noreturn) being expanded to __declspec(_Noreturn) after inclusion of <stdnoreturn.h>.
Fixed problem in compiler optimizer with the (presumably) rare case of *(<pointer-cast>)"string-literal" ...
Fixed problem in compiler with alignment of bit-fields when #pragma pack() was less than the natural alignment of the field type.
Fixed problem in compiler with propagation in SSA form, of an address from a local common subexpression for an aggregate type.
Fixed problem with C runtime memmove() on X86; a patch from version 6.50 never made it into 7.00 for reasons unknown.
Fixed problem with C runtime memset() on x86; when passed a sign-extended integer as the character code (questionable exercise), the assembly code got confused enough to fill with a corrupt value.
Fixed problem with missing parenthesis in several (similar) macros from <stdatomic.h>.
Fixed problem in the IDE with running a custom tool using special macros, when all the MDI documents were closed.
Fixed problem with multiple use sites of the Windows API file guiddef.h.
Fixed problem in the IDE with tracking of focus in child windows of MDI child windows, and tracking of the active MDI child.
Updated TypeLib Add-In sample for IUnknown and IDispatch methods (32-bit and 64-bit version).