Closed Bug 512033 Opened 15 years ago Closed 15 years ago

Implement TYPE_PTRMEMFUNC_P in treehydra

Categories

(Developer Infrastructure :: Source Code Analysis, defect)

x86
Linux
defect
Not set
normal

Tracking

(Not tracked)

RESOLVED FIXED

People

(Reporter: dwitte, Assigned: dwitte)

References

Details

Attachments

(1 file)

Attached patch testcase (deleted) — Splinter Review
I hit this when building a callgraph for xpcom/threads/nsProcessCommon.cpp. Testcase attached. When attempting to determine the type of the ptr-to-member-function, we currently take the wrong codepath (its TREE_CODE is RECORD_TYPE) and totally botch the template bits - we should be treating it more like a METHOD_TYPE.

For reference, the correct codepath based on gcc's prettyprinter would be the branch at gcc/cp/error.c:281 which jumps to line 370.

Taras, any idea what's needed here? gcc_compat.js says

// TODO This doesn't work, need to get lang_specific into Treehydra
function TYPE_PTRMEMFUNC_FLAG(tree) {
  throw new Error("ni");
  do_dehydra_dump(tree.type.lang_specific, 0, 1);
  return tree.type.lang_specific.ptrmemfunc_flag;
  return tree.u.ptrmemfunc_flag;
}

I thought we had access to lang_specific stuff at this point, or is there more to it?
Got it working... will post patch soon.

(Stepping through gcc is fun!)
Assignee: nobody → dwitte
Fixed per bug 512887.
Status: NEW → RESOLVED
Closed: 15 years ago
Resolution: --- → FIXED
Product: Core → Firefox Build System
Product: Firefox Build System → Developer Infrastructure
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: