Skip to content

IDL compiler not always short-circuiting boolean tests #1140

@ThinkOpenly

Description

@ThinkOpenly

Describe the bug
#1135 discovered that this succeeded:

((!implemented?(ExtensionName::Svrsw60t59b)) && ((PTESIZE >= 64) && pte[60:59] != 0))

but this failed:

(!implemented?(ExtensionName::Svrsw60t59b) && (PTESIZE >= 64) && pte[60:59] != 0)

To Reproduce

  1. Change the code in spec/std/isa/isa/globals.isa as above.
  2. Run CI tests

Text output/Error Messages

In the code:

  1842:         (!implemented?(ExtensionName::Svrsw60t59b) && (PTESIZE >= 64) && pte[60:59] != 0)

A type error occurred
  Range too large for bits (msb = 60, range size = 32)

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions