私は同じコンパイラエラーを経験した:iOSデバイス用に構築する際に
internal compiler error: tree check: expected tree that contains 'decl with visibility' structure, have 'const_decl' in c_common_truthvalue_conversion, at c-common.c:2836
はGHUnitIOS-0.4.32(およびGHUnitIOS-0.4.31)でのXcode 4.1を使用します。シミュレータのためのビルド時に問題はありません。
コンパイラのエラーには、GHAssertNotEqualObjects
とGHAssertNotEquals
が含まれています。
Iはコンパイラエラーを受信したとき、私が使用していたコードパターンは、以下であった:私は、次の変更を使用してコードをコンパイルすることができた
- (void) test_isEqual {
SomeObject *foo = [[SomeObject alloc] initWithValue: 1];
SomeObject *bar = [[SomeObject alloc] initWithValue: 2];
GHAssertNotEquals(bar, foo, @"Different Objects, different values - different pointers");
GHAssertNotEqualObjects(bar, foo, @"Different Objects, different values - different pointers (calls isEqual)");
}
:
- (void) test_isEqual {
NSString *comment;
SomeObject *foo = [[SomeObject alloc] initWithValue: 1];
SomeObject *bar = [[SomeObject alloc] initWithValue: 2];
comment = @"Different Objects, different values - different pointers";
GHAssertNotEquals(bar, foo, comment);
comment = @"Different Objects, different values - different pointers (calls isEqual)";
GHAssertNotEqualObjects(bar, foo, comment);
}
なおconst NSStringを使用して、「ある文字列」を使用して、GHAssertEqualObjects
、GHAssertEqualStrings
、GHAssertEquals
、GHAssertFalse
、GHAssertNil
、GHAssertNotNil
、およびGHAssertTrue
を呼び出しましたコンパイラエラーは発生しません。
#define GHAssertNotEquals(a1, a2, description, ...)
と#define GHAssertEqualObjects(a1, a2, description, ...)
を参照し、それらの使用はdescription
です。両方ともGHComposeString(description, ##__VA_ARGS__)
と呼びますが、動作するその他のマクロも同様です。
誰かがそれを提案する前に、私はすでに製品 - >クリーンを実行しました。 – ShogoDodo
もう6時間私自身の質問に答えることができないので、これは私が提出しようとした答えです: - – ShogoDodo
私は問題に答えたと思います。 当初私の代わりに学校男の子のエラーでした。返されるエラー条件がnilである場合、nullをテストするべきではありません。 これまでのところ簡単に聞こえます。私はコードを修正し、再度コンパイルしました。同じエラーですが、かなり異なるシナリオで、GreaterThanを実行すると、off_tの値とゼロ(off_tへのキャスト)の比較が実行されます。 長い話を簡単にまとめると、問題は32ビット(64ビット)であると思われます(それぞれiPadとSimulatorの間)。 – ShogoDodo