| View Issue Details [ Jump to Notes ] | [ Print ] | ||||||||
| ID | Project | Category | View Status | Date Submitted | Last Update | ||||
| 0010428 | GCC-XML | public | 2010-03-17 08:21 | 2010-04-23 11:59 | |||||
| Reporter | Jakub Zytka | ||||||||
| Assigned To | Brad King | ||||||||
| Priority | normal | Severity | major | Reproducibility | always | ||||
| Status | closed | Resolution | fixed | ||||||
| Platform | OS | OS Version | |||||||
| Summary | 0010428: xml_find_template_parm encountered unsupported type component_ref/call_expr | ||||||||
| Description | I don't have simple example yet. When i use gccxml (latest from cvs) i get: xml_find_template_parm encountered unsupported type component_ref xml_find_template_parm encountered unsupported type component_ref xml_find_template_parm encountered unsupported type component_ref xml_find_template_parm encountered unsupported type component_ref xml_find_template_parm encountered unsupported type component_ref xml_find_template_parm encountered unsupported type component_ref xml_find_template_parm encountered unsupported type component_ref xml_find_template_parm encountered unsupported type component_ref xml_find_template_parm encountered unsupported type call_expr blah.h:374: internal compiler error: in write_type, at cp/mangle.c:1649 this looks to be similar to bug 10183 (http://www.itk.org/Bug/view.php?id=10183 [^]) | ||||||||
| Tags | No tags attached. | ||||||||
| Attached Files | |||||||||
| Relationships | |
| Relationships |
| Notes | |
|
(0019922) Jakub Zytka (reporter) 2010-03-17 08:36 |
small example showing xml_find_template_parm encountered unsupported type call_expr problem: #include <boost/function.hpp> boost version 1.33.1 |
|
(0019962) Brad King (manager) 2010-03-19 08:49 |
Look in GCC/gcc/cp/xml.c at the xml_find_template_parm function. It has a big switch on possible expression types. We'll need to add a case for COMPONENT_REF whose implementation strips down to any inner type and recurses. |
|
(0020090) Jakub Zytka (reporter) 2010-04-07 11:32 |
Do you mean case COMPONENT_REF: return xml_find_template_parm (TREE_TYPE (t)); or "stripping to any inner type" requires something more? What about CALL_EXPR? What is the semantics of xml_find_template_parm? When it should return 0 and when 1? What does COMPONENT_REF stand for? What would happen if i always return 1 for CALL_EXPR/COMPONENT_REF? Do i get only too big xml (adding some unnecessary template instantiations), or can the consequences be more serious? |
|
(0020091) Brad King (manager) 2010-04-07 12:01 |
> case COMPONENT_REF: return xml_find_template_parm (TREE_TYPE (t)); Yes. > What about CALL_EXPR? You need to recurse into its sub-expressions > What is the semantics of xml_find_template_parm? When it should return 0 and when 1? It detects whether any part of an expression still has a template parameter (rather than a real type substituted for it). The goal is to dump real template instantiations while avoiding some bogus ones that GCC's parser generates. Return 1 if a template parameter is found and 0 otherwise. I think all terminals in the expression grammar already return 0 or 1. All other node types have sub-expressions or sub-types into which we need to recurse. |
|
(0020373) Jakub Zytka (reporter) 2010-04-23 11:30 |
Brad, could you please look at the patch attached and check if it looks ok? Thx. |
|
(0020374) Brad King (manager) 2010-04-23 11:58 |
Applied, thanks! Handle call expressions in xml_find_template_parm /cvsroot/GCC_XML/gccxml/GCC/gcc/cp/xml.c,v <-- GCC/gcc/cp/xml.c new revision: 1.133; previous revision: 1.132 |
| Notes |
| Issue History | |||
| Date Modified | Username | Field | Change |
| 2010-03-17 08:21 | Jakub Zytka | New Issue | |
| 2010-03-17 08:36 | Jakub Zytka | Note Added: 0019922 | |
| 2010-03-19 08:47 | Brad King | Status | new => assigned |
| 2010-03-19 08:47 | Brad King | Assigned To | => Brad King |
| 2010-03-19 08:49 | Brad King | Note Added: 0019962 | |
| 2010-04-07 11:32 | Jakub Zytka | Note Added: 0020090 | |
| 2010-04-07 12:01 | Brad King | Note Added: 0020091 | |
| 2010-04-23 11:29 | Jakub Zytka | File Added: 10428.patch | |
| 2010-04-23 11:30 | Jakub Zytka | Note Added: 0020373 | |
| 2010-04-23 11:58 | Brad King | Note Added: 0020374 | |
| 2010-04-23 11:59 | Brad King | Status | assigned => closed |
| 2010-04-23 11:59 | Brad King | Resolution | open => fixed |
| Issue History |
| Copyright © 2000 - 2018 MantisBT Team |