Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[cdt-patch] [FIXED][77009]ASTUtil#getType ignores volatile


[FIXED][77009]ASTUtil#getType ignores volatile

Devin Steffler
IBM's Eclipse CDT
Ottawa (Palladium), Ontario, Canada


Index: parser/org/eclipse/cdt/core/parser/tests/CompleteParseASTTest.java
===================================================================
RCS file: /home/tools/org.eclipse.cdt-core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/CompleteParseASTTest.java,v
retrieving revision 1.135
diff -u -r1.135 CompleteParseASTTest.java
--- parser/org/eclipse/cdt/core/parser/tests/CompleteParseASTTest.java	18 Nov 2004 14:34:36 -0000	1.135
+++ parser/org/eclipse/cdt/core/parser/tests/CompleteParseASTTest.java	18 Nov 2004 18:19:10 -0000
@@ -19,7 +19,9 @@
 import org.eclipse.cdt.core.parser.ast.ASTAccessVisibility;
 import org.eclipse.cdt.core.parser.ast.ASTClassKind;
 import org.eclipse.cdt.core.parser.ast.ASTPointerOperator;
+import org.eclipse.cdt.core.parser.ast.ASTUtil;
 import org.eclipse.cdt.core.parser.ast.IASTASMDefinition;
+import org.eclipse.cdt.core.parser.ast.IASTAbstractDeclaration;
 import org.eclipse.cdt.core.parser.ast.IASTAbstractTypeSpecifierDeclaration;
 import org.eclipse.cdt.core.parser.ast.IASTBaseSpecifier;
 import org.eclipse.cdt.core.parser.ast.IASTClassReference;
@@ -2341,5 +2343,14 @@
     	writer.write("temp = (TYPE*)(pType + 1); /* Parser error is here */\n}\n"); //$NON-NLS-1$
     	parse(writer.toString());
     }
+    
+    public void testBug77009() throws Exception
+	{
+		Iterator i = parse("int foo(volatile int &);\n").getDeclarations(); //$NON-NLS-1$
+		IASTFunction foo = (IASTFunction) i.next();
+		Iterator parms = foo.getParameters();
+	 	IASTParameterDeclaration blank = (IASTParameterDeclaration)parms.next();
+		assertEquals( ASTUtil.getType( (IASTAbstractDeclaration)blank ), "volatile int&" ); //$NON-NLS-1$
+	}
 }
 
Index: parser/org/eclipse/cdt/core/parser/ast/ASTUtil.java
===================================================================
RCS file: /home/tools/org.eclipse.cdt-core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/parser/ast/ASTUtil.java,v
retrieving revision 1.7
diff -u -r1.7 ASTUtil.java
--- parser/org/eclipse/cdt/core/parser/ast/ASTUtil.java	29 Jul 2004 14:31:21 -0000	1.7
+++ parser/org/eclipse/cdt/core/parser/ast/ASTUtil.java	18 Nov 2004 18:18:47 -0000
@@ -127,6 +127,8 @@
 		
 		if(declaration.isConst())
 			type.append("const "); //$NON-NLS-1$
+		if(declaration.isVolatile())
+			type.append("volatile "); //$NON-NLS-1$		
 		IASTTypeSpecifier typeSpecifier = declaration.getTypeSpecifier();
 		if(typeSpecifier instanceof IASTElaboratedTypeSpecifier){
 			IASTElaboratedTypeSpecifier elab = (IASTElaboratedTypeSpecifier) typeSpecifier;

Back to the top