From 3170057843bf31829fc48bd7d678134cfea3d54b Mon Sep 17 00:00:00 2001 From: Roberto Raggi <qtc-committer@nokia.com> Date: Wed, 11 Feb 2009 16:21:17 +0100 Subject: [PATCH] Added test case for declarations of "pointer to const T". --- .../auto/cplusplus/semantic/tst_semantic.cpp | 24 +++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/tests/auto/cplusplus/semantic/tst_semantic.cpp b/tests/auto/cplusplus/semantic/tst_semantic.cpp index 84d6ba27c4f..d2af748cddf 100644 --- a/tests/auto/cplusplus/semantic/tst_semantic.cpp +++ b/tests/auto/cplusplus/semantic/tst_semantic.cpp @@ -98,6 +98,7 @@ private slots: void typedef_1(); void typedef_2(); void typedef_3(); + void const_1(); }; void tst_Semantic::function_declaration_1() @@ -319,5 +320,28 @@ void tst_Semantic::typedef_3() _pointStruct); } +void tst_Semantic::const_1() +{ + QSharedPointer<Document> doc = document("\n" +"int foo(const void *s);\n" + ); + + QCOMPARE(doc->errorCount, 0U); + QCOMPARE(doc->globals->symbolCount(), 1U); + + Declaration *decl = doc->globals->symbolAt(0)->asDeclaration(); + QVERIFY(decl); + QVERIFY(decl->type()->isFunctionType()); + Function *funTy = decl->type()->asFunctionType(); + QVERIFY(funTy->returnType()->isIntegerType()); + QCOMPARE(funTy->argumentCount(), 1U); + Argument *arg = funTy->argumentAt(0)->asArgument(); + QVERIFY(arg); + QVERIFY(! arg->type().isConst()); + QVERIFY(arg->type()->isPointerType()); + QVERIFY(arg->type()->asPointerType()->elementType().isConst()); + QVERIFY(arg->type()->asPointerType()->elementType()->isVoidType()); +} + QTEST_APPLESS_MAIN(tst_Semantic) #include "tst_semantic.moc" -- GitLab