| Summary: | Name resolution accesses ambiguous nodes (during ambiguity resolution) | ||
|---|---|---|---|
| Product: | [Tools] CDT | Reporter: | Markus Schorn <mschorn.eclipse> |
| Component: | cdt-parser | Assignee: | Markus Schorn <mschorn.eclipse> |
| Status: | RESOLVED FIXED | QA Contact: | Markus Schorn <mschorn.eclipse> |
| Severity: | normal | ||
| Priority: | P3 | CC: | cdtdoug, malaperle |
| Version: | 8.0 | ||
| Target Milestone: | 8.0.2 | ||
| Hardware: | PC | ||
| OS: | Windows 7 | ||
| Whiteboard: | |||
Added testcase and fix. *** cdt git genie on behalf of Markus Schorn ***
Bug 359364: Prevent premature access to ambiguous nodes.
[*] http://git.eclipse.org/c/cdt/org.eclipse.cdt.git/commit/?id=9adfab7918fcd9bed971e3f4ef6950516a3024a5
*** cdt git genie on behalf of Markus Schorn ***
Bug 359364: Prevent premature access to ambiguous nodes.
[*] http://git.eclipse.org/c/cdt/org.eclipse.cdt.git/commit/?id=cfd0941737a1f4f7ebf90b4b25ccdf7ed6363f5b
|
Here is an example: template <typename T> struct CT1 {}; template <typename T> struct CT2 {}; typedef char Tdef; template<> struct CT1< CT2<int> > { CT1<Tdef> x; // Ambiguity resolution causes lookup in CT1< CT2<int> > }; template<> struct CT2<Tdef> {} // Ambiguous and accessed before resolution.