Skip to content

Commit 421f8d1

Browse files
committed
feat: add support for detecting and rendering static members
1 parent 628052f commit 421f8d1

3 files changed

Lines changed: 6 additions & 0 deletions

File tree

src/dwarf2cpp/models.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,7 @@ class Attribute(Object):
5151
alignment: int | None = None
5252
bit_size: int | None = None
5353
is_template: bool = False
54+
is_static: bool = False
5455

5556

5657
class ParameterKind(enum.StrEnum):

src/dwarf2cpp/templates/attribute.jinja

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
{{- "static " if obj.is_static -}}
12
{{- "alignas({}) ".format(obj.alignment) if obj.alignment -}}
23
{%- if obj.type is string -%}
34
{{ obj.type | insert_name(obj.name) }}

src/dwarf2cpp/visitor.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -332,6 +332,10 @@ def visit_variable(self, die: DWARFDie) -> None:
332332
def visit_member(self, die: DWARFDie) -> None:
333333
self._handle_attribute(die)
334334

335+
member = self._cache.get(die.offset)
336+
if member and die.find("DW_AT_external"):
337+
member.is_static = True
338+
335339
def visit_subprogram(self, die: DWARFDie) -> None:
336340
if not die.find("DW_AT_decl_file") or not die.find("DW_AT_decl_line") or not die.short_name:
337341
return

0 commit comments

Comments
 (0)