Project

General

Profile

Actions

Bug #9864

closed

DWARF->CTF enum conversion needs to be careful of sign

Added by John Levon about 5 years ago. Updated over 4 years ago.

Status:
Closed
Priority:
Normal
Assignee:
-
Category:
-
Start date:
2018-10-03
Due date:
% Done:

100%

Estimated time:
Difficulty:
Medium
Tags:
needs-triage
Gerrit CR:
External Bug:

Description

Equivalent of https://smartos.org/bugview/OS-7279 but for the old tools

Previously, our enumeration conversion simply used ctf_dwarf_signed(DW_AT_const_value. However, with newer GCC versions, this will produce - for example - -32768 when the real enum value is 32768.

Instead, we should check ctf_dwarf_unsigned() first - this fails for negative-valued enums, so we will end up with the right value whether it's positive or negative.


Related issues

Related to illumos gate - Feature #9996: use GCC 7 as default primary compilerClosedJohn Levon2018-11-21

Actions
Actions #1

Updated by John Levon about 5 years ago

One manifestation of this is ddi_hp_cn_state_t : all the enum values should be positive

Actions #2

Updated by John Levon almost 5 years ago

  • Related to Feature #9996: use GCC 7 as default primary compiler added
Actions #3

Updated by Electric Monk over 4 years ago

  • Status changed from New to Closed
  • % Done changed from 0 to 100

git commit 2dc5cbd37af38054ac6aab88a3ecee22a13ed2eb

commit  2dc5cbd37af38054ac6aab88a3ecee22a13ed2eb
Author: John Levon <john.levon@joyent.com>
Date:   2019-01-18T02:17:01.000Z

    9312 ctf: be less clever about skipping 'extern' variables declarations
    9864 DWARF->CTF enum conversion needs to be careful of sign
    Reviewed by: Toomas Soome <tsoome@me.com>
    Reviewed by: Andy Fiddaman <af@citrus-it.net>
    Reviewed by: Igor Kozhukhov <igor@dilos.org>
    Approved by: Dan McDonald <danmcd@joyent.com>

Actions

Also available in: Atom PDF