[cfe-commits] [libcxxabi] r149552 - /libcxxabi/trunk/test/catch_const_pointer_nullptr.cpp

Nico Weber thakis at chromium.org
Tue Dec 3 20:48:11 PST 2013


On Wed, Feb 1, 2012 at 2:27 PM, Marshall Clow <mclow at qualcomm.com> wrote:

> Author: marshall
> Date: Wed Feb  1 16:27:24 2012
> New Revision: 149552
>
> URL: http://llvm.org/viewvc/llvm-project?rev=149552&view=rev
> Log:
> added const nullptr tests
>
> Added:
>     libcxxabi/trunk/test/catch_const_pointer_nullptr.cpp
>
> Added: libcxxabi/trunk/test/catch_const_pointer_nullptr.cpp
> URL:
> http://llvm.org/viewvc/llvm-project/libcxxabi/trunk/test/catch_const_pointer_nullptr.cpp?rev=149552&view=auto
>
> ==============================================================================
> --- libcxxabi/trunk/test/catch_const_pointer_nullptr.cpp (added)
> +++ libcxxabi/trunk/test/catch_const_pointer_nullptr.cpp Wed Feb  1
> 16:27:24 2012
> @@ -0,0 +1,133 @@
> +//===--------------------- catch_const_pointer_nullptr.cpp
> ----------------------===//
> +//
> +//                     The LLVM Compiler Infrastructure
> +//
> +// This file is dual licensed under the MIT and the University of
> Illinois Open
> +// Source Licenses. See LICENSE.TXT for details.
> +//
>
> +//===----------------------------------------------------------------------===//
> +
> +#include <cassert>
> +
> +#if __has_feature(cxx_nullptr)
> +
> +struct A {};
> +
> +void test1()
> +{
> +    try
> +    {
> +        throw nullptr;
> +        assert(false);
> +    }
> +    catch (A*)
> +    {
> +    }
> +    catch (const A*)
> +    {
> +        assert(false);
> +    }
> +}
> +
> +
> +void test2()
> +{
> +    try
> +    {
> +        throw nullptr;
> +        assert(false);
> +    }
> +    catch (const A*)
> +    {
> +    }
> +    catch (A*)
> +    {
> +        assert(false);
> +    }
> +}
> +
> +void test3()
> +{
> +    try
> +    {
> +        throw nullptr;
> +        assert(false);
> +    }
> +    catch (const A const*)
>

Was this supposed to say `const A * const`? (Also in test4) As is, clang
warns

catch_const_pointer_nullptr.cpp:56:20: warning: duplicate 'const'
declaration specifier [-Wduplicate-decl-specifier]
    catch (const A const*)
                   ^~~~~
catch_const_pointer_nullptr.cpp:75:20: warning: duplicate 'const'
declaration specifier [-Wduplicate-decl-specifier]
    catch (const A const*)
                   ^~~~~



> +    {
> +    }
> +    catch (A*)
> +    {
> +        assert(false);
> +    }
> +}
> +
> +void test4()
> +{
> +    try
> +    {
> +        throw nullptr;
> +        assert(false);
> +    }
> +    catch (A*)
> +    {
> +    }
> +    catch (const A const*)
> +    {
> +        assert(false);
> +    }
> +}
> +
> +void test5()
> +{
> +    try
> +    {
> +        throw nullptr;
> +        assert(false);
> +    }
> +    catch (A const*)
> +    {
> +    }
> +    catch (A*)
> +    {
> +        assert(false);
> +    }
> +}
> +
> +void test6()
> +{
> +    try
> +    {
> +        throw nullptr;
> +        assert(false);
> +    }
> +    catch (A*)
> +    {
> +    }
> +    catch (A const*)
> +    {
> +        assert(false);
> +    }
> +}
> +
> +
> +#else
> +
> +void test1() {}
> +void test2() {}
> +void test3() {}
> +void test4() {}
> +void test5() {}
> +void test6() {}
> +
> +#endif
> +
> +int main()
> +{
> +    test1();
> +    test2();
> +    test3();
> +    test4();
> +    test5();
> +    test6();
> +}
>
>
> _______________________________________________
> cfe-commits mailing list
> cfe-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20131203/bce7f36e/attachment.html>


More information about the cfe-commits mailing list