[
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
This patch is for post 2.1.
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.tests/parser/org/eclipse/cdt/core/parser/tests/CompleteParseASTTest.java,v
retrieving revision 1.107.2.7
diff -u -r1.107.2.7 CompleteParseASTTest.java
--- parser/org/eclipse/cdt/core/parser/tests/CompleteParseASTTest.java 25 Oct 2004 17:35:45 -0000 1.107.2.7
+++ parser/org/eclipse/cdt/core/parser/tests/CompleteParseASTTest.java 26 Oct 2004 20:15:04 -0000
@@ -18,7 +18,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;
@@ -2129,4 +2131,13 @@
writer.write( "foo() i;" );
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/parser/org/eclipse/cdt/core/parser/ast/ASTUtil.java,v
retrieving revision 1.5.2.2
diff -u -r1.5.2.2 ASTUtil.java
--- parser/org/eclipse/cdt/core/parser/ast/ASTUtil.java 10 Aug 2004 15:58:59 -0000 1.5.2.2
+++ parser/org/eclipse/cdt/core/parser/ast/ASTUtil.java 26 Oct 2004 20:14:36 -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;