gcc-dehydra: expose the .type of things as a complex object

RESOLVED FIXED

Status

--
enhancement
RESOLVED FIXED
11 years ago
6 months ago

People

(Reporter: benjamin, Assigned: taras.mozilla)

Tracking

Trunk
x86
Linux

Firefox Tracking Flags

(Not tracked)

Details

(Reporter)

Description

11 years ago
As discussed on IRC, there are currently some issues with the .type of things in gcc-dehydra: they will come back as a typedef name, which makes maintaining a class map rather... difficult.

At a minimum, I'd like the elsa-dehydra behavior where all typedefs are resolved, but what I'd really like is a complex object which represents the type.

.type = { kind: 'class',
          name='MMgc::GCObject' }
.type = { kind: 'typedef',
          name='MMgc::uint32',
          inner: { kind: 'intrinsic',
                   name='unsigned int',
                   width=32 /* bits */ }
(Reporter)

Comment 1

11 years ago
Current commits look mostly-useful, except:

class A
{
  int *intPtrArray[4];
};

({name:"A", loc:"/builds/dehydra-test-types.ii:2:1", bases:[], members:[{name:"A::intPtrArray", type:{isArray:true, size:"3u"}, loc:"/builds/dehydra-test-types.ii:8:21"}]})

I think it should be something like: {isArray:true, size:"3u", type: {name: 'int'} }
(Reporter)

Comment 2

11 years ago
Also, it it possible to unwrap these cases a little more?

class A
{
  const int constIntMember;
  /* is currently {name:"A::contIntMember", type:{name:"const int"}, loc:"/builds/dehydra-test-types.ii:11:13"} */

  volatile int volatileIntMember;
  /* is currently {name:"A::volatileIntMember", type:{name:"volatile int"}, loc:"/builds/dehydra-test-types.ii:12:16"} */
};

could these be instead
{name:"A::constIntMember", type:{name:int", isConst=true}}
{name:"A::volatileIntMember", type:{name:int", isVolatile=true}}
(Assignee)

Comment 3

11 years ago
Dehydra types should be to your liking now
Status: NEW → RESOLVED
Last Resolved: 11 years ago
Resolution: --- → FIXED

Updated

6 months ago
Product: Core → Firefox Build System
You need to log in before you can comment on or make changes to this bug.