Aaron Ballman
409af50858
Volatile reads are side-effecting operations, but in the general case of access through a volatile-qualified type, we're not certain of the underlying object's side-effects on access.
...
Treat volatile accesses as "maybe" instead of "definite" side effects for the purposes of warning on evaluations in an unevaluated context. No longer diagnose on idiomatic code like:
int * volatile v;
(void)sizeof(*v);
llvm-svn: 225116
2015-01-03 17:00:12 +00:00
Aaron Ballman
6c93b3e29c
Adding a -Wunused-value warning for expressions with side effects used in an unevaluated expression context, such as sizeof(), or decltype(). Also adds a similar warning when the expression passed to typeid() *is* evaluated, since it is equally likely that the user would expect the expression operand to be unevaluated in that case.
...
llvm-svn: 224465
2014-12-17 21:57:17 +00:00
Benjamin Kramer
35e6fee3e9
Sema: Reject templates in all extern "C" contexts.
...
Otherwise we'd accept them if the LinkageDecl was not the direct
parent DeclContext. PR17968.
llvm-svn: 200641
2014-02-02 16:35:43 +00:00
Lubos Lunak
1f490f3aea
report unused-value warning also for warn_unused types
...
llvm-svn: 186793
2013-07-21 13:15:58 +00:00
Eli Friedman
c11535c248
Add a warning to diagnose statements in C++ like "*(volatile int*)x;". Conceptually, this is part of -Wunused-value, but I added a separate flag -Wunused-volatile-lvalue so it doesn't get turned off by accident with -Wno-unused-value. I also made a few minor improvements to existing unused value warnings in the process. <rdar://problem/11516811>.
...
llvm-svn: 157362
2012-05-24 00:47:05 +00:00
Nick Lewycky
fcd5e7a160
When emitting a diagnostic about two-phase name lookup, don't do useless
...
qualified name lookups into transparent contexts.
llvm-svn: 152739
2012-03-14 20:41:00 +00:00
Matt Beaumont-Gay
dcaacaa190
Fix a QoI bug with overloaded operators inside macros.
...
We were failing to set source locations and ranges in isUnusedResultAWarning
for CXXOperatorCallExprs, leading to an "expression result unused" warning
with absolutely no context if the expression was inside a macro.
llvm-svn: 140036
2011-09-19 18:51:20 +00:00
John McCall
c493a73240
Improve the unused-value check to look into comma expressions and filter out
...
voids in sub-expressions. Patch by Mike M!
Fixes PR4806.
llvm-svn: 98335
2010-03-12 07:11:26 +00:00