From 2b93059b7e8203d3b775dd14775fe08b53f7de05 Mon Sep 17 00:00:00 2001 From: Sergey Prigogin Date: Sun, 23 Nov 2008 07:12:54 +0000 Subject: [PATCH] Bug 256205. --- .../ast2/GCCCompleteParseExtensionsTest.java | 28 +++++++++++-------- .../cpp/CPPTemplateTemplateParameter.java | 3 +- 2 files changed, 18 insertions(+), 13 deletions(-) diff --git a/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/ast2/GCCCompleteParseExtensionsTest.java b/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/ast2/GCCCompleteParseExtensionsTest.java index bebbe0eccbf..16fb32bfea9 100644 --- a/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/ast2/GCCCompleteParseExtensionsTest.java +++ b/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/ast2/GCCCompleteParseExtensionsTest.java @@ -237,20 +237,24 @@ public class GCCCompleteParseExtensionsTest extends AST2BaseTest { parseGPP( writer.toString() ); // TODO Devin raised bug 93980 } - public void testBug75401() throws Exception - { + public void testBug75401() throws Exception { Writer writer = new StringWriter(); - writer.write( "#define va_arg __builtin_va_arg \n"); //$NON-NLS-1$ - writer.write( "#define va_list __builtin_va_list \n"); //$NON-NLS-1$ - writer.write( "void main( int argc, char** argv ) { \n"); //$NON-NLS-1$ - writer.write( " va_list v; \n"); //$NON-NLS-1$ - writer.write( " long l = va_arg( v, long ); \n"); //$NON-NLS-1$ - writer.write( "} \n"); //$NON-NLS-1$ - - parseGCC( writer.toString() ); + writer.write( "#define va_list __builtin_va_list \n"); //$NON-NLS-1$ + writer.write( "#define va_arg(v,l) __builtin_va_arg(v,l) \n"); //$NON-NLS-1$ + writer.write( "#define va_start(v,l) __builtin_va_start(v,l) \n"); //$NON-NLS-1$ + writer.write( "#define va_end(v) __builtin_va_end(v) \n"); //$NON-NLS-1$ + writer.write( "void variadic(int first, ...) { \n"); //$NON-NLS-1$ + writer.write( " va_list v; \n"); //$NON-NLS-1$ + writer.write( " va_start(v, first); \n"); //$NON-NLS-1$ + writer.write( " long l = va_arg(v, long); \n"); //$NON-NLS-1$ + writer.write( " va_end(v); \n"); //$NON-NLS-1$ + writer.write( "} \n"); //$NON-NLS-1$ + + parseGCC(writer.toString()); + parseGPP(writer.toString()); } - - public void testBug73954B() throws Exception{ + + public void testBug73954B() throws Exception { Writer writer = new StringWriter(); writer.write( "#define foo(x) \\\n"); //$NON-NLS-1$ writer.write( " __builtin_choose_expr( 1, foo_d(x), (void)0 ) \n"); //$NON-NLS-1$ diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPTemplateTemplateParameter.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPTemplateTemplateParameter.java index 6eeae80b2e9..45bce8c5564 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPTemplateTemplateParameter.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPTemplateTemplateParameter.java @@ -75,7 +75,8 @@ public class CPPTemplateTemplateParameter extends CPPTemplateParameter implement ICPPTemplateParameter p = null; ICPPTemplateParameter[] result = null; for (ICPPASTTemplateParameter param : params) { - p= (ICPPTemplateParameter) CPPTemplates.getTemplateParameterName(param).resolveBinding(); + IBinding binding = CPPTemplates.getTemplateParameterName(param).resolveBinding(); + p= (ICPPTemplateParameter) binding; if (p != null) { result = (ICPPTemplateParameter[]) ArrayUtil.append(ICPPTemplateParameter.class, result, p); }