History log of /external/clang/test/CodeGenCXX/pr12251.cpp
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
eb54d423d2e550324446c9d15fa2b2a92843cab5 14-Jul-2013 Richard Smith <richard-llvm@metafoo.co.uk> Make these tests more robust against IRgen choosing to emit more named metadata.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@186279 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/CodeGenCXX/pr12251.cpp
923099773fe4bbc52a25a5d3d92236b5e37cef93 24-Oct-2012 Ulrich Weigand <ulrich.weigand@de.ibm.com> A number of test cases assume that an "int" parameter or return value
will be represented in the IR as a plain "i32" type. This causes the
tests to spuriously fail on platforms where int is not a 32-bit type,
or where the ABI requires attributes like "signext" or "zeroext" to
be used.

This patch adds -triple or -target parameters to force those tests
to use the i386-unknown-unknown target.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166551 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/CodeGenCXX/pr12251.cpp
82fe6aea407a5a09a6131452ce622087ba83880d 28-Mar-2012 Chandler Carruth <chandlerc@gmail.com> Move the emission of strict enum range metadata behind a flag (the same
flag as GCC uses: -fstrict-enums). There is a *lot* of code making
unwarranted assumptions about the underlying type of enums, and it
doesn't seem entirely reasonable to eagerly break all of it.

Much more importantly, the current state of affairs is *very* good at
optimizing based upon this information, which causes failures that are
very distant from the actual enum. Before we push for enabling this by
default, I think we need to implement -fcatch-undefined-behavior support
for instrumenting and trapping whenever we store or load a value outside
of the range. That way we can track down the misbehaving code very
quickly.

I discussed this with Rafael, and currently the only important cases he
is aware of are the bool range-based optimizations which are staying
hard enabled. We've not seen any issue with those either, and they are
much more important for performance.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@153550 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/CodeGenCXX/pr12251.cpp
74873c478fd9e40e445d05fadf2d24574459f4c2 24-Mar-2012 Rafael Espindola <rafael.espindola@gmail.com> Fix copy and pasto.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@153385 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/CodeGenCXX/pr12251.cpp
c3f8955d7da1019dbe16b0bdf3e49d2e08d988e9 24-Mar-2012 Rafael Espindola <rafael.espindola@gmail.com> Add back r153360 with a fix for enums that cover all the 32 bit values.
Thanks to NAKAMURA Takumi for finding it!

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@153383 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/CodeGenCXX/pr12251.cpp
88a569a9781e0472a1f1c392f6c94ed0c068d946 24-Mar-2012 NAKAMURA Takumi <geek4civic@gmail.com> Revert r153360 (and r153380), "Second part of PR12251. Produce the range metadata in clang for booleans and".

For i686 targets (eg. cygwin), I saw "Range must not be empty!" in verifier.

It produces (i32)[0x80000000:0x80000000) from (uint64_t)[0xFFFFFFFF80000000ULL:0x0000000080000000ULL), for signed i32 on MDNode::Range.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@153382 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/CodeGenCXX/pr12251.cpp
539a2308a9c6c31144930f13830cd5354d07a0e1 24-Mar-2012 Benjamin Kramer <benny.kra@googlemail.com> On i386 the alignment of i64 is 4, not 8.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@153380 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/CodeGenCXX/pr12251.cpp
e27af29401da15cc2e9a92825cb24adb1aef7091 24-Mar-2012 Rafael Espindola <rafael.espindola@gmail.com> Second part of PR12251. Produce the range metadata in clang for booleans and
c++ enums.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@153360 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/CodeGenCXX/pr12251.cpp