mirror of
https://github.com/eclipse-cdt/cdt
synced 2025-04-29 19:45:01 +02:00
Bug 529646 - Avoid computing the value of static fields for every object of a class type
Change-Id: Ic07a1fe5c84b67ed4a9be5e2d50beb9d5c1a54af
This commit is contained in:
parent
d822d7ce16
commit
88da6c08bb
2 changed files with 69 additions and 0 deletions
|
@ -2495,4 +2495,70 @@ public class IndexCPPBindingResolutionTest extends IndexBindingResolutionTestBas
|
|||
public void testNestedClassDefinedOutOfLine_502999() throws Exception {
|
||||
checkBindings();
|
||||
}
|
||||
|
||||
// class MyClass
|
||||
// {
|
||||
// public:
|
||||
// MyClass( int i )
|
||||
// {
|
||||
// }
|
||||
// static const MyClass CONSTANT_NAME1;
|
||||
// static const MyClass CONSTANT_NAME2;
|
||||
// static const MyClass CONSTANT_NAME3;
|
||||
// static const MyClass CONSTANT_NAME4;
|
||||
// static const MyClass CONSTANT_NAME5;
|
||||
// static const MyClass CONSTANT_NAME6;
|
||||
// static const MyClass CONSTANT_NAME7;
|
||||
// static const MyClass CONSTANT_NAME8;
|
||||
// static const MyClass CONSTANT_NAME9;
|
||||
// static const MyClass CONSTANT_NAME10;
|
||||
// static const MyClass CONSTANT_NAME11;
|
||||
// static const MyClass CONSTANT_NAME12;
|
||||
// static const MyClass CONSTANT_NAME13;
|
||||
// static const MyClass CONSTANT_NAME14;
|
||||
// static const MyClass CONSTANT_NAME15;
|
||||
// static const MyClass CONSTANT_NAME16;
|
||||
// static const MyClass CONSTANT_NAME17;
|
||||
// static const MyClass CONSTANT_NAME18;
|
||||
// static const MyClass CONSTANT_NAME19;
|
||||
// static const MyClass CONSTANT_NAME20;
|
||||
// static const MyClass CONSTANT_NAME21;
|
||||
// static const MyClass CONSTANT_NAME22;
|
||||
// static const MyClass CONSTANT_NAME23;
|
||||
// static const MyClass CONSTANT_NAME24;
|
||||
// static const MyClass CONSTANT_NAME25;
|
||||
// static const MyClass CONSTANT_NAME26;
|
||||
// };
|
||||
//
|
||||
// const MyClass MyClass::CONSTANT_NAME1( 1 );
|
||||
// const MyClass MyClass::CONSTANT_NAME2( 2 );
|
||||
// const MyClass MyClass::CONSTANT_NAME3( 3 );
|
||||
// const MyClass MyClass::CONSTANT_NAME4( 4 );
|
||||
// const MyClass MyClass::CONSTANT_NAME5( 5 );
|
||||
// const MyClass MyClass::CONSTANT_NAME6( 6 );
|
||||
// const MyClass MyClass::CONSTANT_NAME7( 7 );
|
||||
// const MyClass MyClass::CONSTANT_NAME8( 8 );
|
||||
// const MyClass MyClass::CONSTANT_NAME9( 9 );
|
||||
// const MyClass MyClass::CONSTANT_NAME10( 10 );
|
||||
// const MyClass MyClass::CONSTANT_NAME11( 11 );
|
||||
// const MyClass MyClass::CONSTANT_NAME12( 12 );
|
||||
// const MyClass MyClass::CONSTANT_NAME13( 13 );
|
||||
// const MyClass MyClass::CONSTANT_NAME14( 14 );
|
||||
// const MyClass MyClass::CONSTANT_NAME15( 15 );
|
||||
// const MyClass MyClass::CONSTANT_NAME16( 16 );
|
||||
// const MyClass MyClass::CONSTANT_NAME17( 17 );
|
||||
// const MyClass MyClass::CONSTANT_NAME18( 18 );
|
||||
// const MyClass MyClass::CONSTANT_NAME19( 19 );
|
||||
// const MyClass MyClass::CONSTANT_NAME20( 20 );
|
||||
// const MyClass MyClass::CONSTANT_NAME21( 21 );
|
||||
// const MyClass MyClass::CONSTANT_NAME22( 22 );
|
||||
// const MyClass MyClass::CONSTANT_NAME23( 23 );
|
||||
// const MyClass MyClass::CONSTANT_NAME24( 24 );
|
||||
// const MyClass MyClass::CONSTANT_NAME25( 25 );
|
||||
// const MyClass MyClass::CONSTANT_NAME26( 26 );
|
||||
|
||||
// // empty file
|
||||
public void testOOM_529646() throws Exception {
|
||||
checkBindings();
|
||||
}
|
||||
}
|
||||
|
|
|
@ -176,6 +176,9 @@ public final class EvalConstructor extends CPPDependentEvaluation {
|
|||
|
||||
ICPPField[] fields = classType.getDeclaredFields();
|
||||
for (ICPPField field : fields) {
|
||||
if (field.isStatic()) {
|
||||
continue;
|
||||
}
|
||||
final Map.Entry<IBinding, ICPPEvaluation> initializer =
|
||||
getInitializerFromMemberInitializerList(field, exec);
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue