exprs.c revision cb2ca73c1d7e76cc1358ce51457d2d5837d84f9b
10b7489194f9f89fac39d57211c1e7953ae50251fDouglas Gregor// Test this without pch. 20b7489194f9f89fac39d57211c1e7953ae50251fDouglas Gregor// RUN: clang-cc -fblocks -include %S/exprs.h -fsyntax-only -verify %s 30b7489194f9f89fac39d57211c1e7953ae50251fDouglas Gregor 40b7489194f9f89fac39d57211c1e7953ae50251fDouglas Gregor// Test with pch. 50b7489194f9f89fac39d57211c1e7953ae50251fDouglas Gregor// RUN: clang-cc -emit-pch -fblocks -o %t %S/exprs.h && 60b7489194f9f89fac39d57211c1e7953ae50251fDouglas Gregor// RUN: clang-cc -fblocks -include-pch %t -fsyntax-only -verify %s 70b7489194f9f89fac39d57211c1e7953ae50251fDouglas Gregor 80b7489194f9f89fac39d57211c1e7953ae50251fDouglas Gregorint integer; 90b7489194f9f89fac39d57211c1e7953ae50251fDouglas Gregorlong long_integer; 1017fc223395d51be582fc666bb6ea21bd1dff26dcDouglas Gregordouble floating; 11cb2ca73c1d7e76cc1358ce51457d2d5837d84f9bDouglas Gregor_Complex double floating_complex; 120b7489194f9f89fac39d57211c1e7953ae50251fDouglas Gregor 130b7489194f9f89fac39d57211c1e7953ae50251fDouglas Gregor// DeclRefExpr 140b7489194f9f89fac39d57211c1e7953ae50251fDouglas Gregorint_decl_ref *int_ptr1 = &integer; 150b7489194f9f89fac39d57211c1e7953ae50251fDouglas Gregorenum_decl_ref *enum_ptr1 = &integer; 1617fc223395d51be582fc666bb6ea21bd1dff26dcDouglas Gregor 1717fc223395d51be582fc666bb6ea21bd1dff26dcDouglas Gregor// IntegerLiteral 180b7489194f9f89fac39d57211c1e7953ae50251fDouglas Gregorinteger_literal *int_ptr2 = &integer; 190b7489194f9f89fac39d57211c1e7953ae50251fDouglas Gregorlong_literal *long_ptr1 = &long_integer; 200b7489194f9f89fac39d57211c1e7953ae50251fDouglas Gregor 21db600c330a37b1c3ab4533310729910ee188f900Douglas Gregor// FloatingLiteral + ParenExpr 2217fc223395d51be582fc666bb6ea21bd1dff26dcDouglas Gregorfloating_literal *double_ptr = &floating; 2317fc223395d51be582fc666bb6ea21bd1dff26dcDouglas Gregor 24cb2ca73c1d7e76cc1358ce51457d2d5837d84f9bDouglas Gregor// ImaginaryLiteral 25cb2ca73c1d7e76cc1358ce51457d2d5837d84f9bDouglas Gregorimaginary_literal *cdouble_ptr = &floating_complex; 26cb2ca73c1d7e76cc1358ce51457d2d5837d84f9bDouglas Gregor 27673ecd6a4a9f7c12fb6f76f84f654dbdcdc89e76Douglas Gregor// StringLiteral 28673ecd6a4a9f7c12fb6f76f84f654dbdcdc89e76Douglas Gregorconst char* printHello() { 29673ecd6a4a9f7c12fb6f76f84f654dbdcdc89e76Douglas Gregor return hello; 30673ecd6a4a9f7c12fb6f76f84f654dbdcdc89e76Douglas Gregor} 31673ecd6a4a9f7c12fb6f76f84f654dbdcdc89e76Douglas Gregor 3217fc223395d51be582fc666bb6ea21bd1dff26dcDouglas Gregor// CharacterLiteral 330b7489194f9f89fac39d57211c1e7953ae50251fDouglas Gregorchar_literal *int_ptr3 = &integer; 34db600c330a37b1c3ab4533310729910ee188f900Douglas Gregor 350b0b77fa29c74c99a77548ed86ca8a04f7cf6b02Douglas Gregor// UnaryOperator 360b0b77fa29c74c99a77548ed86ca8a04f7cf6b02Douglas Gregornegate_enum *int_ptr4 = &integer; 370b0b77fa29c74c99a77548ed86ca8a04f7cf6b02Douglas Gregor 380b0b77fa29c74c99a77548ed86ca8a04f7cf6b02Douglas Gregor// SizeOfAlignOfExpr 390b0b77fa29c74c99a77548ed86ca8a04f7cf6b02Douglas Gregortypeof(sizeof(float)) size_t_value; 400b0b77fa29c74c99a77548ed86ca8a04f7cf6b02Douglas Gregortypeof_sizeof *size_t_ptr = &size_t_value; 410b0b77fa29c74c99a77548ed86ca8a04f7cf6b02Douglas Gregortypeof_sizeof2 *size_t_ptr2 = &size_t_value; 420b0b77fa29c74c99a77548ed86ca8a04f7cf6b02Douglas Gregor 43cb2ca73c1d7e76cc1358ce51457d2d5837d84f9bDouglas Gregor// ArraySubscriptExpr 44cb2ca73c1d7e76cc1358ce51457d2d5837d84f9bDouglas Gregorarray_subscript *double_ptr1_5 = &floating; 45cb2ca73c1d7e76cc1358ce51457d2d5837d84f9bDouglas Gregor 461f0d0133b0e8d1f01f63951ee04927796b34740dDouglas Gregor// CallExpr 471f0d0133b0e8d1f01f63951ee04927796b34740dDouglas Gregorcall_returning_double *double_ptr2 = &floating; 481f0d0133b0e8d1f01f63951ee04927796b34740dDouglas Gregor 491f0d0133b0e8d1f01f63951ee04927796b34740dDouglas Gregor// MemberExpr 501f0d0133b0e8d1f01f63951ee04927796b34740dDouglas Gregormember_ref_double *double_ptr3 = &floating; 511f0d0133b0e8d1f01f63951ee04927796b34740dDouglas Gregor 52db600c330a37b1c3ab4533310729910ee188f900Douglas Gregor// BinaryOperator 530b0b77fa29c74c99a77548ed86ca8a04f7cf6b02Douglas Gregoradd_result *int_ptr5 = &integer; 54db600c330a37b1c3ab4533310729910ee188f900Douglas Gregor 55db600c330a37b1c3ab4533310729910ee188f900Douglas Gregor// CStyleCastExpr 56db600c330a37b1c3ab4533310729910ee188f900Douglas Gregorvoid_ptr vp1 = &integer; 57