This is a real bugfix release as you can see from the changelog below. The most important fix concerns the optimizer which generated invalid code connected to the SHA3
opcode in certain situations.
Features:
- Inline assembly: support both
suicide
andselfdestruct
opcodes
(note:suicide
is deprecated). - Inline assembly: issue warning if stack is not balanced after block.
- Include
keccak256()
as an alias tosha3()
. - Support shifting constant numbers.
Bugfixes:
- Commandline interface: Disallow unknown options in
solc
. - Name resolver: Allow inheritance of
enum
definitions. - Type checker: Proper type checking for bound functions.
- Type checker: fixed crash related to invalid fixed point constants
- Type checker: fixed crash related to invalid literal numbers.
- Type checker:
super.x
does not look upx
in the current contract. - Code generator: expect zero stack increase after
super
as an expression. - Code generator: fix an internal compiler error for
L.Foo
forenum Foo
defined in libraryL
. - Code generator: allow inheritance of
enum
definitions. - Inline assembly: support the
address
opcode. - Inline assembly: fix parsing of assignment after a label.
- Inline assembly: external variables of unsupported type (such as
this
,super
, etc.)
are properly detected as unusable. - Inline assembly: support variables within modifiers.
- Optimizer: fix related to stale knowledge about SHA3 operations