aboutsummaryrefslogtreecommitdiff
path: root/test/SemaCXX/null_in_arithmetic_ops.cpp
AgeCommit message (Collapse)Author
2012-11-08PR14284: crash on ext-valid returning NULL from a void functionDavid Blaikie
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167565 91177308-0d34-0410-b5e6-96231b3b80d8
2012-03-02Add -Wstring-plus-int, which warns on "str" + int and int + "str".Nico Weber
It doesn't warn if the integer is known at compile time and within the bounds of the string. Discussion: http://comments.gmane.org/gmane.comp.compilers.clang.scm/47203 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151943 91177308-0d34-0410-b5e6-96231b3b80d8
2011-08-11The current warning in -Wnull-arithmetic for comparisons between NULL and ↵Richard Trieu
non-pointers is not very helpful. This patch will update the wording to be more helpful to users. Old warning: warning: use of NULL in arithmetic operation [-Wnull-arithmetic] return 10 <= NULL; ^ ~~~~ New warning: warning: comparison between NULL and non-pointer ('int' and NULL) [-Wnull-arithmetic] return 10 <= NULL; ~~ ^ ~~~~ git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@137377 91177308-0d34-0410-b5e6-96231b3b80d8
2011-06-27Factor out (some of) the checking for invalid forms of pointerChandler Carruth
arithmetic into a couple of common routines. Use these to make the messages more consistent in the various contexts, especially in terms of consistently diagnosing binary operators with invalid types on both the left- and right-hand side. Also, improve the grammar and wording of the messages some, handling both two pointers and two (different) types. The wording of function pointer arithmetic diagnostics still strikes me as poorly phrased, and I worry this makes them slightly more awkward if more consistent. I'm hoping to fix that with a follow-on patch and test case that will also make them more helpful when a typedef or template type parameter makes the type completely opaque. Suggestions on better wording are very welcome, thanks to Richard Smith for some initial help on that front. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@133906 91177308-0d34-0410-b5e6-96231b3b80d8
2011-06-20Use an explicitly 64-bit triple flag to ensure we can easily verify theChandler Carruth
types printed in various diagnostics. We could omit checking for the types, but that can mask errors where the wrong type is streamed into the diagnostic. There was at least one of these caught by this test already. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@133429 91177308-0d34-0410-b5e6-96231b3b80d8
2011-06-20Fix a problem with the diagnostics of invalid arithmetic with functionChandler Carruth
pointers I found while working on the NULL arithmetic warning. We here always assuming the LHS was the pointer, instead of using the selected pointer expression. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@133428 91177308-0d34-0410-b5e6-96231b3b80d8
2011-06-20Move away from the poor "abstraction" I added to Type. John arguedChandler Carruth
effectively that this abstraction simply doesn't exist. That is highlighted by the fact that by using it we were papering over a more serious error in this warning: the fact that we warned for *invalid* constructs involving member pointers and block pointers. I've fixed the obvious issues with the warning here, but this is confirming an original suspicion that this warning's implementation is flawed. I'm looking into how we can implement this more reasonably. WIP on that front. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@133425 91177308-0d34-0410-b5e6-96231b3b80d8
2011-06-19Add test cases for false positives on -Wnull-arithmetic from RichardChandler Carruth
Trieu, and fix them by checking for array and function types as well as pointer types. I've added a predicate method on Type to bundle together the logic we're using here: isPointerLikeType(). I'd welcome better names for this predicate, this is the best I came up with. It's implemented as a switch to be a touch lighter weight than all the chained isa<...> casts that would result otherwise. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@133383 91177308-0d34-0410-b5e6-96231b3b80d8
2011-06-17Put the new warning from revision 133196 on NULL arithmetic behind the flag ↵Richard Trieu
-Wnull-arthimetic and set to DefaultIgnore. A few edge cases need to be worked out before this can be set to default. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@133287 91177308-0d34-0410-b5e6-96231b3b80d8
2011-06-16Add a new warning when a NULL constant is used in arithmetic operations. ↵Richard Trieu
The warning will fire on cases such as: int x = 1 + NULL; git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@133196 91177308-0d34-0410-b5e6-96231b3b80d8