Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/text/c/hover/CSourceHover.java11
1 files changed, 7 insertions, 4 deletions
diff --git a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/text/c/hover/CSourceHover.java b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/text/c/hover/CSourceHover.java
index 74e3984a4c..b5d4541ee4 100644
--- a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/text/c/hover/CSourceHover.java
+++ b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/text/c/hover/CSourceHover.java
@@ -218,11 +218,14 @@ public class CSourceHover extends AbstractCEditorTextHover {
// in case the binding is a non-explicit specialization we need
// to consider the original binding (bug 281396)
- if (names.length == 0 && binding instanceof ICPPSpecialization) {
- binding= ((ICPPSpecialization) binding).getSpecializedBinding();
- if (!(binding instanceof IProblemBinding)) {
- names= findDefsOrDecls(ast, binding);
+ while (names.length == 0 && binding instanceof ICPPSpecialization) {
+ IBinding specializedBinding = ((ICPPSpecialization) binding).getSpecializedBinding();
+ if (specializedBinding == null || specializedBinding instanceof IProblemBinding) {
+ break;
}
+
+ names = findDefsOrDecls(ast, specializedBinding);
+ binding = specializedBinding;
}
if (names.length > 0) {
for (IName name : names) {

Back to the top