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;