diff options
author | Richard Smith <richard-llvm@metafoo.co.uk> | 2011-11-16 07:18:12 +0000 |
---|---|---|
committer | Richard Smith <richard-llvm@metafoo.co.uk> | 2011-11-16 07:18:12 +0000 |
commit | cf74da76db9ba69aac1033e23f775bc8974c48e3 (patch) | |
tree | 7b6a79591d3f6f9094d044fc9236f1986e84dbbe /clang/test/Sema/const-eval.c | |
parent | 643e63c40c6d1c29d4a6721f514bebe6d71c3a70 (diff) | |
download | bcm5719-llvm-cf74da76db9ba69aac1033e23f775bc8974c48e3.tar.gz bcm5719-llvm-cf74da76db9ba69aac1033e23f775bc8974c48e3.zip |
Fix PR11385: A pointer constant expression which has been cast via an integer is
not safely derived. Don't allow lvalue-to-rvalue conversions on the result of
dereferencing such a pointer.
llvm-svn: 144783
Diffstat (limited to 'clang/test/Sema/const-eval.c')
-rw-r--r-- | clang/test/Sema/const-eval.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/clang/test/Sema/const-eval.c b/clang/test/Sema/const-eval.c index 632457da091..094d1ce7160 100644 --- a/clang/test/Sema/const-eval.c +++ b/clang/test/Sema/const-eval.c @@ -1,4 +1,4 @@ -// RUN: %clang_cc1 -fsyntax-only -verify %s +// RUN: %clang_cc1 -fsyntax-only -verify -triple i686-linux %s #define EVAL_EXPR(testno, expr) int test##testno = sizeof(struct{char qq[expr];}); int x; @@ -105,3 +105,6 @@ int weak_int_test = weak_int; // expected-error {{not a compile-time constant}} int literalVsNull1 = "foo" == 0; int literalVsNull2 = 0 == "foo"; + +// PR11385. +int castViaInt[*(int*)(unsigned long)"test"]; // expected-error {{variable length array}} |