cxx_exprs.cpp revision 14ab24f01e36d495fce183aa67b41e45cdd54f39
1f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org// Test this without pch.
2f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org// RUN: %clang_cc1 -include %S/cxx_exprs.h -std=c++0x -fsyntax-only -verify %s
3f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
4f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org// Test with pch.
5f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org// RUN: %clang_cc1 -x c++-header -std=c++0x -emit-pch -o %t %S/cxx_exprs.h
6f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org// RUN: %clang_cc1 -std=c++0x -include-pch %t -fsyntax-only -verify %s
7f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
8f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgint integer;
9f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgdouble floating;
10f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgchar character;
11f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgbool boolean;
12f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
13f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org// CXXStaticCastExpr
14f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstatic_cast_result void_ptr = &integer;
15f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
16f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org// CXXDynamicCastExpr
17f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgDerived *d;
18f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgdynamic_cast_result derived_ptr = d;
19f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
20f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org// CXXReinterpretCastExpr
21f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgreinterpret_cast_result void_ptr2 = &integer;
22f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
23f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org// CXXConstCastExpr
24f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgconst_cast_result char_ptr = &character;
25f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
26f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org// CXXFunctionalCastExpr
27f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgfunctional_cast_result *double_ptr = &floating;
28f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
29f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org// CXXBoolLiteralExpr
30f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgbool_literal_result *bool_ptr = &boolean;
31f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstatic_assert(true_value, "true_value is true");
32f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstatic_assert(!false_value, "false_value is false");
33f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
34f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org// CXXNullPtrLiteralExpr
35f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgcxx_null_ptr_result null_ptr = nullptr;
36f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
37f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org// CXXTypeidExpr
38f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgtypeid_result1 typeid_1 = 0;
39f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgtypeid_result2 typeid_2 = 0;