mirror of
https://github.com/Gericom/teak-llvm.git
synced 2025-06-26 14:58:59 -04:00

In a modules build, android is very picky about which symbols are visible after including libc++ headers (e.g. <cstdio> defines only std::printf and not ::printf). This consolidates the tests where this was an issue to always include the <c???> version of the headers and prefixes the symbols with std:: as necessary. Apart from that, there is no functional change in the tests. llvm-svn: 335149
66 lines
2.0 KiB
C++
66 lines
2.0 KiB
C++
//===-- ns2.cpp ------------------------------------------------*- C++ -*-===//
|
|
//
|
|
// The LLVM Compiler Infrastructure
|
|
//
|
|
// This file is distributed under the University of Illinois Open Source
|
|
// License. See LICENSE.TXT for details.
|
|
//
|
|
//===----------------------------------------------------------------------===//
|
|
|
|
#include "ns.h"
|
|
|
|
static int func()
|
|
{
|
|
std::printf("static m2.cpp func()\n");
|
|
return 2;
|
|
}
|
|
void test_lookup_at_file_scope()
|
|
{
|
|
// BP_file_scope
|
|
std::printf("at file scope: func() = %d\n", func()); // eval func(), exp: 2
|
|
std::printf("at file scope: func(10) = %d\n", func(10)); // eval func(10), exp: 11
|
|
}
|
|
namespace A {
|
|
namespace B {
|
|
int func()
|
|
{
|
|
std::printf("A::B::func()\n");
|
|
return 4;
|
|
}
|
|
void test_lookup_at_nested_ns_scope()
|
|
{
|
|
// BP_nested_ns_scope
|
|
std::printf("at nested ns scope: func() = %d\n", func()); // eval func(), exp: 4
|
|
|
|
//printf("func(10) = %d\n", func(10)); // eval func(10), exp: 13
|
|
// NOTE: Under the rules of C++, this test would normally get an error
|
|
// because A::B::func() hides A::func(), but lldb intentionally
|
|
// disobeys these rules so that the intended overload can be found
|
|
// by only removing duplicates if they have the same type.
|
|
}
|
|
void test_lookup_at_nested_ns_scope_after_using()
|
|
{
|
|
// BP_nested_ns_scope_after_using
|
|
using A::func;
|
|
std::printf("at nested ns scope after using: func() = %d\n", func()); // eval func(), exp: 3
|
|
}
|
|
}
|
|
}
|
|
int A::foo()
|
|
{
|
|
std::printf("A::foo()\n");
|
|
return 42;
|
|
}
|
|
int A::func(int a)
|
|
{
|
|
std::printf("A::func(int)\n");
|
|
return a + 3;
|
|
}
|
|
void A::test_lookup_at_ns_scope()
|
|
{
|
|
// BP_ns_scope
|
|
std::printf("at nested ns scope: func() = %d\n", func()); // eval func(), exp: 3
|
|
std::printf("at nested ns scope: func(10) = %d\n", func(10)); // eval func(10), exp: 13
|
|
std::printf("at nested ns scope: foo() = %d\n", foo()); // eval foo(), exp: 42
|
|
}
|