1
0
Fork 0
mirror of https://github.com/eclipse-cdt/cdt synced 2025-04-29 19:45:01 +02:00

Bug 299911. Adapted for CDT 8.1.x branch.

This commit is contained in:
Sergey Prigogin 2012-08-14 16:56:09 -07:00
parent 744d4c5264
commit df47c2b6d6
14 changed files with 130 additions and 187 deletions

View file

@ -0,0 +1,100 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<component id="org.eclipse.cdt.core" version="2">
<resource path="META-INF/MANIFEST.MF">
<filter id="924844039">
<message_arguments>
<message_argument value="5.4.1"/>
<message_argument value="5.4.0"/>
</message_arguments>
</filter>
</resource>
<resource path="parser/org/eclipse/cdt/core/dom/ast/IASTTypeIdExpression.java" type="org.eclipse.cdt.core.dom.ast.IASTTypeIdExpression">
<filter id="1209008130">
<message_arguments>
<message_argument value="op_is_literal_type"/>
</message_arguments>
</filter>
<filter id="1211105284">
<message_arguments>
<message_argument value="op_is_literal_type"/>
</message_arguments>
</filter>
<filter id="1211105284">
<message_arguments>
<message_argument value="op_is_standard_layout"/>
</message_arguments>
</filter>
<filter id="1211105284">
<message_arguments>
<message_argument value="op_is_trivial"/>
</message_arguments>
</filter>
</resource>
<resource path="parser/org/eclipse/cdt/core/dom/ast/IScope.java" type="org.eclipse.cdt.core.dom.ast.IScope$ScopeLookupData">
<filter id="1211105284">
<message_arguments>
<message_argument value="ScopeLookupData"/>
</message_arguments>
</filter>
</resource>
<resource path="parser/org/eclipse/cdt/core/dom/ast/cpp/ICPPASTExpression.java" type="org.eclipse.cdt.core.dom.ast.cpp.ICPPASTExpression">
<filter id="1108344834">
<message_arguments>
<message_argument value="org.eclipse.cdt.core.dom.ast.cpp.ICPPASTExpression"/>
</message_arguments>
</filter>
<filter id="1110441988">
<message_arguments>
<message_argument value="org.eclipse.cdt.core.dom.ast.cpp.ICPPASTExpression"/>
</message_arguments>
</filter>
</resource>
<resource path="parser/org/eclipse/cdt/core/dom/ast/cpp/ICPPASTInitializerClause.java" type="org.eclipse.cdt.core.dom.ast.cpp.ICPPASTInitializerClause">
<filter id="1110441988">
<message_arguments>
<message_argument value="org.eclipse.cdt.core.dom.ast.cpp.ICPPASTInitializerClause"/>
</message_arguments>
</filter>
</resource>
<resource path="parser/org/eclipse/cdt/core/dom/ast/cpp/ICPPMethodSpecialization.java" type="org.eclipse.cdt.core.dom.ast.cpp.ICPPMethodSpecialization">
<filter id="1110441988">
<message_arguments>
<message_argument value="org.eclipse.cdt.core.dom.ast.cpp.ICPPMethodSpecialization"/>
</message_arguments>
</filter>
</resource>
<resource path="parser/org/eclipse/cdt/core/parser/GCCKeywords.java" type="org.eclipse.cdt.core.parser.GCCKeywords">
<filter id="1143996420">
<message_arguments>
<message_argument value="cp__is_literal_type"/>
</message_arguments>
</filter>
<filter id="1143996420">
<message_arguments>
<message_argument value="cp__is_standard_layout"/>
</message_arguments>
</filter>
<filter id="1143996420">
<message_arguments>
<message_argument value="cp__is_trivial"/>
</message_arguments>
</filter>
</resource>
<resource path="parser/org/eclipse/cdt/core/parser/IGCCToken.java" type="org.eclipse.cdt.core.parser.IGCCToken">
<filter id="1211105284">
<message_arguments>
<message_argument value="tTT_is_literal_type"/>
</message_arguments>
</filter>
<filter id="1211105284">
<message_arguments>
<message_argument value="tTT_is_standard_layout"/>
</message_arguments>
</filter>
<filter id="1211105284">
<message_arguments>
<message_argument value="tTT_is_trivial"/>
</message_arguments>
</filter>
</resource>
</component>

View file

@ -130,19 +130,19 @@ public interface IASTTypeIdExpression extends IASTExpression {
/**
* Built-in type trait of g++.
* @since 5.5
* Experimental API. May change without notice.
*/
public static final int op_is_literal_type= 19;
/**
* Built-in type trait of g++.
* @since 5.5
* Experimental API. May change without notice.
*/
public static final int op_is_standard_layout= 20;
/**
* Built-in type trait of g++.
* @since 5.5
* Experimental API. May change without notice.
*/
public static final int op_is_trivial= 21;

View file

@ -100,7 +100,7 @@ public interface IScope {
/**
* @since 5.5
* @noinstantiate This class is not intended to be instantiated by clients.
* @noextend This class is not intended to be subclassed by clients.
*/
public static class ScopeLookupData {
@ -185,7 +185,7 @@ public interface IScope {
* have not yet been resolved.
*
* @return : the bindings in this scope that match the name or prefix, or null
* @since 5.5
* @noreference This method is not intended to be referenced by clients.
*/
public IBinding[] getBindings(ScopeLookupData lookup);
}

View file

@ -31,13 +31,13 @@ public interface ICPPASTArraySubscriptExpression extends IASTArraySubscriptExpre
public ICPPASTArraySubscriptExpression copy(CopyStyle style);
/**
* @since 5.5
* @noreference This method is not intended to be referenced by clients.
*/
@Override
public ICPPASTExpression getArrayExpression();
/**
* @since 5.5
* @noreference This method is not intended to be referenced by clients.
*/
@Override
public ICPPASTInitializerClause getArgument();

View file

@ -8,7 +8,6 @@
* Contributors:
* Markus Schorn - initial API and implementation
*******************************************************************************/
package org.eclipse.cdt.core.dom.ast.cpp;
import org.eclipse.cdt.core.dom.ast.IASTExpression;
@ -17,8 +16,7 @@ import org.eclipse.cdt.core.dom.ast.IASTExpression;
* Interface for c++ expressions.
* @noextend This interface is not intended to be extended by clients.
* @noimplement This interface is not intended to be implemented by clients.
* @since 5.5
* Experimental API. May change without notice.
*/
public interface ICPPASTExpression extends IASTExpression, ICPPASTInitializerClause {
}

View file

@ -54,7 +54,7 @@ public interface ICPPASTFieldReference extends IASTFieldReference, ICPPASTExpres
public IType getFieldOwnerType();
/**
* @since 5.5
* @noreference This method is not intended to be referenced by clients.
*/
@Override
public ICPPASTExpression getFieldOwner();

View file

@ -17,7 +17,6 @@ import org.eclipse.cdt.internal.core.dom.parser.cpp.ICPPEvaluation;
* C++ specific initializer clause.
* @noextend This interface is not intended to be extended by clients.
* @noimplement This interface is not intended to be implemented by clients.
* @since 5.5
*/
public interface ICPPASTInitializerClause extends IASTInitializerClause {
/**

View file

@ -35,70 +35,70 @@ public interface ICPPClassSpecialization extends ICPPSpecialization, ICPPClassTy
/**
* Creates a specialized binding for a member of the original class. The result is
* a member of this class specialization.
* @since 5.5
* @noreference This method is not intended to be referenced by clients.
*/
IBinding specializeMember(IBinding binding, IASTNode point);
/**
* Similar to {@link ICPPClassType#getBases()} but a accepts a starting point for template
* instantiation.
* @since 5.5
* @noreference This method is not intended to be referenced by clients.
*/
ICPPBase[] getBases(IASTNode point);
/**
* Similar to {@link ICPPClassType#getConstructors()} but a accepts a starting point
* for template instantiation.
* @since 5.5
* @noreference This method is not intended to be referenced by clients.
*/
ICPPConstructor[] getConstructors(IASTNode point);
/**
* Similar to {@link ICPPClassType#getDeclaredFields()} but a accepts a starting point
* for template instantiation.
* @since 5.5
* @noreference This method is not intended to be referenced by clients.
*/
ICPPField[] getDeclaredFields(IASTNode point);
/**
* Similar to {@link ICPPClassType#getMethods()} but a accepts a starting point
* for template instantiation.
* @since 5.5
* @noreference This method is not intended to be referenced by clients.
*/
ICPPMethod[] getMethods(IASTNode point);
/**
* Similar to {@link ICPPClassType#getAllDeclaredMethods()} but a accepts a starting point
* for template instantiation.
* @since 5.5
* @noreference This method is not intended to be referenced by clients.
*/
ICPPMethod[] getAllDeclaredMethods(IASTNode point);
/**
* Similar to {@link ICPPClassType#getDeclaredMethods()} but a accepts a starting point
* for template instantiation.
* @since 5.5
* @noreference This method is not intended to be referenced by clients.
*/
ICPPMethod[] getDeclaredMethods(IASTNode point);
/**
* Similar to {@link ICPPClassType#getFriends()} but a accepts a starting point
* for template instantiation.
* @since 5.5
* @noreference This method is not intended to be referenced by clients.
*/
IBinding[] getFriends(IASTNode point);
/**
* Similar to {@link ICPPClassType#getFriends()} but a accepts a starting point
* for template instantiation.
* @since 5.5
* @noreference This method is not intended to be referenced by clients.
*/
IField[] getFields(IASTNode point);
/**
* Similar to {@link ICPPClassType#getNestedClasses()} but a accepts a starting point
* for template instantiation.
* @since 5.5
* @noreference This method is not intended to be referenced by clients.
*/
ICPPClassType[] getNestedClasses(IASTNode point);
}

View file

@ -15,7 +15,6 @@ import org.eclipse.cdt.core.dom.ast.IType;
/**
* Specialization of a method.
* @since 5.5
*
* @noextend This interface is not intended to be extended by clients.
* @noimplement This interface is not intended to be implemented by clients.
@ -24,7 +23,6 @@ public interface ICPPMethodSpecialization extends ICPPSpecialization, ICPPMethod
/**
* Similar to {@link ICPPFunction#getExceptionSpecification()} but a accepts a starting point
* for template instantiation.
* @since 5.5
*/
IType[] getExceptionSpecification(IASTNode point);
}

View file

@ -68,7 +68,7 @@ public class GCCKeywords {
cp__is_union= "__is_union".toCharArray();
/**
* @since 5.5
* Experimental API. May change without notice.
*/
public static final char[]
cp__is_literal_type= "__is_literal_type".toCharArray(),

View file

@ -41,7 +41,8 @@ public interface IGCCToken extends IToken {
/** @since 5.3 */ int tTT_is_pod= FIRST_RESERVED_IGCCToken + 19;
/** @since 5.3 */ int tTT_is_polymorphic= FIRST_RESERVED_IGCCToken + 20;
/** @since 5.3 */ int tTT_is_union= FIRST_RESERVED_IGCCToken + 21;
/** @since 5.5 */ int tTT_is_literal_type= FIRST_RESERVED_IGCCToken + 22;
/** @since 5.5 */ int tTT_is_standard_layout= FIRST_RESERVED_IGCCToken + 23;
/** @since 5.5 */ int tTT_is_trivial= FIRST_RESERVED_IGCCToken + 24;
/** The following constants are experimental and are not intended to be referenced by clients. */
int tTT_is_literal_type= FIRST_RESERVED_IGCCToken + 22;
int tTT_is_standard_layout= FIRST_RESERVED_IGCCToken + 23;
int tTT_is_trivial= FIRST_RESERVED_IGCCToken + 24;
}

View file

@ -343,7 +343,7 @@ public class CharArrayUtils {
/**
* Converts a {@link StringBuilder} to a character array.
* @since 5.5
* @noreference This method is not intended to be referenced by clients.
*/
public static char[] extractChars(StringBuilder buf) {
final int len = buf.length();

View file

@ -1,151 +0,0 @@
/*******************************************************************************
* Copyright (c) 2012 Google, Inc and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* Sergey Prigogin (Google) - initial API and implementation
*******************************************************************************/
package org.eclipse.cdt.core.parser.util;
import java.util.Arrays;
/**
* Automatically growing integer array.
*
* @since 5.5
*/
public class IntArray {
private static final int INITIAL_CAPACITY = 10;
private static final int[] EMPTY_ARRAY = {};
private int[] buffer = EMPTY_ARRAY;
private int size;
public IntArray() {
}
public IntArray(int initialCapacity) {
this.buffer = new int[initialCapacity];
}
public int size() {
return size;
}
public boolean isEmpty() {
return size == 0;
}
public void add(int value) {
grow(size + 1);
buffer[size++] = value;
}
public void add(int index, int value) {
checkBounds(index);
grow(size + 1);
System.arraycopy(buffer, index, buffer, index + 1, size - index);
buffer[index] = value;
size++;
}
public void addAll(IntArray other) {
grow(size + other.size());
System.arraycopy(other.buffer, 0, buffer, size, other.size);
size += other.size;
return;
}
public void addAll(int[] array) {
grow(size + array.length);
System.arraycopy(array, 0, buffer, size, array.length);
size += array.length;
return;
}
public int remove(int index) {
checkBounds(index);
int old = buffer[index];
int n = size - index - 1;
if (n > 0) {
System.arraycopy(buffer, index + 1, buffer, index, n);
}
return old;
}
public void remove(int from, int to) {
checkBounds(from);
checkBounds(to);
System.arraycopy(buffer, to, buffer, from, size - to);
}
public void clear() {
size = 0;
}
public int get(int index) {
checkRange(index);
return buffer[index];
}
public int set(int index, int value) {
checkBounds(index);
int old = buffer[index];
buffer[index] = value;
return old;
}
public int[] toArray() {
return size == 0 ? EMPTY_ARRAY : Arrays.copyOf(buffer, size);
}
public void trimToSize() {
if (size == 0) {
buffer = EMPTY_ARRAY;
} else if (size < buffer.length) {
buffer = Arrays.copyOf(buffer, size);
}
}
public void ensureCapacity(int minCapacity) {
if (minCapacity > 0) {
grow(minCapacity);
}
}
private void grow(int minCapacity) {
if (minCapacity < 0) // Overflow
throw new OutOfMemoryError();
int capacity = buffer.length;
if (minCapacity > capacity) {
int newCapacity = capacity == 0 ? INITIAL_CAPACITY : capacity + (capacity >> 1);
// newCapacity may be negative due to overflow.
if (newCapacity < minCapacity)
newCapacity = minCapacity;
// newCapacity is guaranteed to be non negative.
try {
buffer = Arrays.copyOf(buffer, newCapacity);
} catch (OutOfMemoryError e) {
// Try again it case we were too aggressive in reserving capacity.
buffer = Arrays.copyOf(buffer, minCapacity);
}
}
}
private void checkBounds(int index) {
if (index < 0) {
throw new IndexOutOfBoundsException("Negative index: " + index); //$NON-NLS-1$
}
checkRange(index);
}
private void checkRange(int index) {
if (index >= size) {
throw new IndexOutOfBoundsException("Index: " + index + ", size: " + size); //$NON-NLS-1$//$NON-NLS-2$
}
}
}

View file

@ -217,13 +217,11 @@ public class PDOM extends PlatformObject implements IPDOM {
* 123.0 - Combined file size and encoding hash code.
* 124.0 - GCC attributes and NO_RETURN flag for functions.
* #125.0# - Indexes for unresolved includes and files indexed with I/O errors. <<CDT 8.1>>
*
* CDT 8.2 development
* 130.0 - Dependent expressions, bug 299911
* 126.0 - Dependent expressions, bug 299911.
*/
private static final int MIN_SUPPORTED_VERSION= version(130, 0);
private static final int MAX_SUPPORTED_VERSION= version(130, Short.MAX_VALUE);
private static final int DEFAULT_VERSION = version(130, 0);
private static final int MIN_SUPPORTED_VERSION= version(126, 0);
private static final int MAX_SUPPORTED_VERSION= version(126, Short.MAX_VALUE);
private static final int DEFAULT_VERSION = version(126, 0);
private static int version(int major, int minor) {
return (major << 16) + minor;