Skip to content

Various improvements and bug fixes

Compare
Choose a tag to compare
@LADSoft LADSoft released this 11 Nov 17:41
· 3773 commits to master since this release

This version has various improvements and bug fixes.

  • occ: speed up slow symbol table searches in classes with a lot of members
  • occ: fix problems compiling C++ regex header
  • occ: fix various problems where template specializations should have been instantantiated even though they weren't used in the current source file
  • occ: fix problems with linking template functions with static variables
  • occ: remove unreferenced external declarations from the object file
  • occ: extend range of things you can reference with a __declspec declaration
  • occ: call assembler even if -c was specified on the command line
  • occ: the -lxxx switch set xxx as the output file name
  • occ: fix problems when using namespace qualifiers on member initializer names for base classes
  • occ: fix problems with member initializers not being set up correctly
  • occ: use 'real' line number in debug info
  • occ: add common options to emit data.
  • occ, olink, olib: allow '.a' and '.lib' to be used as extensions for libraries
  • occ: fix /S switch so you can use -S as well.
  • occ: remove 'expression has no effect' warning when both paths of a ?: expression are void values
  • occ: fix a newly introduced problem where sometimes it could generate bad output files for static data
  • occ: fix a crash if an intermediate code block became dead while it was still being used...
  • occ: fix problem where constexpr static variable initializations failed for constexpr functions and constructors
  • occ: fix some crashes while errors were occurring
  • occ: implement CPATH and SOURCE_DATE_EPOCH environment variables
  • occ: pass specified /o switch to assembler or RC compiler, if /c is also specified
  • occ: fix problems with auto pointers
  • occ: fix problems with the preprocessor not being able to handle maxed out 64-bit unsigned numbers
  • occ: delete output files on error
  • occ: fix problem where things trailing a function prototype sometimes couldn't refernece the arguments from the prototype
  • occ: remove 'suspicious pointer' warning when assigning to a function pointer
  • occ: add command line and pragma support for warning control
  • occ: pass output file name to assembler, rc compiler when compiling a single file
  • occ: fix rare problem with register allocator failing
  • occ: implicit cast from long long to 'enum type' as a function arg could result in bad code generation
  • occ: local initialization of char aa[10] = ""; didn't work. Forms without the empty string worked
  • occ: a negative long long constant got downconverted to int during constant evaluation
  • occ: line numbers in c++ code were off by one.
  • occ: when a template defined in a template using statement was used as the specialization of another template, it wasn't evaluated properly.
  • occ: fix various problems with generating assembly code that oasm couldn't parse
  • occ: add fastcall and switch some of the STL support functions to being intrinsics
  • occ: fix vagaray in debug format, sometimes function types would not be emitted (could cause link problems)
  • occ: fix problem generating code for debug mode, sometimes the resulting code would not run
  • oasm: fix bug where too-full buffer could modify generated code stream
  • olink: fix a crash if occ failed to output line information properly
  • dlpe: fix the fixup of relative branch to import thunks, to allow the thunks to be relocated
  • dlpe: use --nologo when invokeing oimplib
  • dlpe: fix a rare problem where a write past the end of allocated memory could cause a crash
  • occpr (symbol table parser): fix two crashes
  • oimplib: 'replace' dll modules in library, instead of 'adding' them, so they don't go stale
  • olib: fix '/o' switch
  • olib: implement LIBRARY_PATH environment variable
  • omake: fix some problems interacting with autoconf-generated make systems
  • ocide: could not step into a dll function
  • ocide & docs: add step functions to the debug menu
  • ocide: fix crash when starting program with 'stop in dll' set
  • ocide: fix various problems with 'stop in dll' including problems with invalid breakpoints
  • ocide: detect end of file boundary properly when trying to find a breakpoint line
  • ocide: fix problems with single stepping and setting breakpoints in dll
  • ocide: fix problems with DLL breakpoints not being reset after program is restarted
  • ocide: fix perenial crash if closing windows while the colorization is updating
  • ocide: clean up menus related to file close options
  • ocide: fix problem with 'browseto' (F12) - it wouldn't browse to macro definitions
  • ocide: fix various crashes that could occur during database fetches, while editing or opening/closeing debugger
  • ocide: fix various display problems with 'build properties' window
  • ocide: fix so that build properties window can be refreshed with new data, if left open.
  • ocide: be explicit about errors when can't debug a program , especially the 'invalid workding directory' error.
  • ocide: find 'stdcall' functions in the code completion
  • ocide: fix various other problems with code completion
  • ocide: fix build: handle data imports correctly
  • ocide: fix problem with browse info and default workspace
  • oimplib, olib, olink: fix more problems when '/' was used as a path separator
  • olink: bail with an error if a library cannot be found
  • olink: make sure intermediate file always has a .rel extension
  • omake: fix compatibility issues with /bin/sh
  • omake: fix 'order' prerequisites to work correctly
  • obrc: tweak error message to not mention object files
  • rtl: sprintf could try to modify input strings, didn't work if string is in readonly memory
  • rtl: remove definition of __declspec in the _defs.h
  • rtl: fix C++ check in stdbool.h
  • rtl: fix strncat to work as per the standard
  • rtl: uncaught throw will now result in abnormal program termination
  • rtl: fix definition of 'bad_cast' to inherit from 'exception'
  • rtl: fix the definition of __sync_add_and_fetch provided for locale.cpp to add to the result
  • rtl: add a 'helper' dll which can output a stack trace if a program crashes
  • rtl: fix the definition of 'TryEnterCriticalSection'
  • rtl: access() set errno to EACCESS instead of ENOENT on failure.
  • rtl: open/sopen would set errno to ENOENT if they were successfully creating an output file
  • rtl: implement fcntl
  • rtl: fix strerror(), was adding a line feed to end of string
  • rtl: fix problems with LSCRTL: double load issue and issue where DLLs couldn't use it
  • rtl: precision on integers in sprintf did not have the desired effect
  • rtl: add _TRUE_MIN constants to float.h
  • all: add 'clang' to continuous integration builds
  • all: add compile-via-assembly to continuous integration builds
  • documentation: add minimal documentation for ancilliary projects