1762bb9d0ad20320b9f97a841dce57ba5e8e48b07Richard Smith// RUN: %clang_cc1 -std=c++11 -triple x86_64-apple-darwin10 -I%S -emit-llvm -o - %s | FileCheck %s 2c1eb14a66fdd955aff3f957a5843295f27952bddAnders Carlsson 32bd6250f8e14750033362664ee298c2cc0e64853Anders Carlsson#include <typeinfo> 42bd6250f8e14750033362664ee298c2cc0e64853Anders Carlsson 52bd6250f8e14750033362664ee298c2cc0e64853Anders Carlsson// CHECK: @_ZTIDn = external constant i8* 6c1eb14a66fdd955aff3f957a5843295f27952bddAnders Carlssonint* a = nullptr; 7c1eb14a66fdd955aff3f957a5843295f27952bddAnders Carlsson 8c1eb14a66fdd955aff3f957a5843295f27952bddAnders Carlssonvoid f() { 9c1eb14a66fdd955aff3f957a5843295f27952bddAnders Carlsson int* a = nullptr; 10c1eb14a66fdd955aff3f957a5843295f27952bddAnders Carlsson} 114ce46c2db2b17ef52b34dbeeec01e448025c8edcDouglas Gregor 124ce46c2db2b17ef52b34dbeeec01e448025c8edcDouglas Gregortypedef decltype(nullptr) nullptr_t; 134ce46c2db2b17ef52b34dbeeec01e448025c8edcDouglas Gregor 144ce46c2db2b17ef52b34dbeeec01e448025c8edcDouglas Gregornullptr_t get_nullptr(); 154ce46c2db2b17ef52b34dbeeec01e448025c8edcDouglas Gregor 164ce46c2db2b17ef52b34dbeeec01e448025c8edcDouglas Gregorstruct X { }; 174ce46c2db2b17ef52b34dbeeec01e448025c8edcDouglas Gregorvoid g() { 184ce46c2db2b17ef52b34dbeeec01e448025c8edcDouglas Gregor // CHECK: call i8* @_Z11get_nullptrv() 194ce46c2db2b17ef52b34dbeeec01e448025c8edcDouglas Gregor int (X::*pmf)(int) = get_nullptr(); 204ce46c2db2b17ef52b34dbeeec01e448025c8edcDouglas Gregor} 212bd6250f8e14750033362664ee298c2cc0e64853Anders Carlsson 222bd6250f8e14750033362664ee298c2cc0e64853Anders Carlssonconst std::type_info& f2() { 232bd6250f8e14750033362664ee298c2cc0e64853Anders Carlsson return typeid(nullptr_t); 24124b3def9ed99dc844225aeb6b17f789307500eeChris Lattner} 25