Richard Smith
d7b2a9ebd1
PR19249: Don't forget to DiagnoseUseOfDecl for the implicit use of a variable
...
in a lambda capture.
llvm-svn: 204757
2014-03-25 21:11:32 +00:00
Reid Kleckner
83055ade75
-fms-compatibility: Only form implicit member exprs for unqualified ids
...
If there are any scope specifiers, then a base class must be named or
the symbol isn't from a base class.
Fixes PR19233.
llvm-svn: 204753
2014-03-25 20:31:28 +00:00
Aaron Ballman
69e6e7c604
Capability attributes can now be declared on a typedef declaration as well as a structure declaration. This allows for C code to use Boolean expressions on a capability as part of another attribute. Eg) __attribute__((requires_capability(!SomeCapability)))
...
llvm-svn: 204657
2014-03-24 19:29:19 +00:00
Nico Rieck
e84f8db709
Treat dllimport globals without explicit storage class as extern
...
dllimport implies a definition which means the 'extern' keyword is optional
when declaring imported variables.
llvm-svn: 204576
2014-03-23 21:24:01 +00:00
Arnaud A. de Grandmaison
6756a497a1
Cleanup dead assignments reported by scan-build
...
llvm-svn: 204569
2014-03-23 20:28:07 +00:00
Nuno Lopes
fb744589bc
remove a bunch of unused private methods
...
found with a smarter version of -Wunused-member-function that I'm playwing with.
Appologies in advance if I removed someone's WIP code.
ARCMigrate/TransProperties.cpp | 8 -----
AST/MicrosoftMangle.cpp | 1
Analysis/AnalysisDeclContext.cpp | 5 ---
Analysis/LiveVariables.cpp | 14 ----------
Index/USRGeneration.cpp | 10 -------
Sema/Sema.cpp | 33 +++++++++++++++++++++---
Sema/SemaChecking.cpp | 3 --
Sema/SemaDecl.cpp | 20 ++------------
StaticAnalyzer/Checkers/GenericTaintChecker.cpp | 1
9 files changed, 34 insertions(+), 61 deletions(-)
llvm-svn: 204561
2014-03-23 17:12:37 +00:00
Richard Smith
d28ac5b998
Emit an update record if we instantiate the definition of a function template
...
specialization from a module. (This can also happen for function template
specializations in PCHs if they're instantiated eagerly, because they're
constexpr or have a deduced return type.)
llvm-svn: 204547
2014-03-22 23:33:22 +00:00
Richard Smith
0ac1b8fd07
Refactor: move loading pending instantiations from chained PCHs to a more appropriate place, so that we only ask the external source once.
...
llvm-svn: 204535
2014-03-22 01:43:32 +00:00
Kaelyn Uhrain
ec2629964e
Be a bit smarter about what nested name qualifiers to allow when
...
performing typo correction on very short (1 or 2 char) identifiers.
llvm-svn: 204525
2014-03-21 21:54:25 +00:00
Kaelyn Uhrain
bbfc05727b
[C++11] Simplify some loops in Sema::CorrectTypo as range-based for loops.
...
llvm-svn: 204524
2014-03-21 21:54:22 +00:00
Ted Kremenek
725a09732e
Placate -Wunreachable-code by removing unnecessary logic to handle NUM_OPENMP_DEFAULT_KINDS <= 1.
...
llvm-svn: 204487
2014-03-21 17:34:28 +00:00
Aaron Ballman
df115d9bf3
The release_capability, release_shared_capability and release_generic_capability functions are now functionally distinct for capability analysis. The unlock_function attribute maps directly to release_generic_capability.
...
llvm-svn: 204469
2014-03-21 14:48:48 +00:00
Ted Kremenek
1421037ece
[-Wunreachable-code] add a specialized diagnostic for unreachable increment expressions of loops.
...
llvm-svn: 204430
2014-03-21 06:02:36 +00:00
Alexey Bataev
62c87d2509
[OPENMP] parsing of clause 'safelen' (for directive 'omp simd')
...
llvm-svn: 204428
2014-03-21 04:51:18 +00:00
Richard Smith
564417a071
When the exception specification for a function in an imported PCH or module is
...
resolved, emit an update record.
llvm-svn: 204403
2014-03-20 21:47:22 +00:00
Aaron Ballman
18d85aed39
Replacing the exclusive_lock_function, shared_lock_function and unlock_function attributes with the acquire_capability and release_capability attributes. The old spellings will continue to work, but the underlying semantic attributes have been replaced.
...
Downgraded the capability diagnostics from error to warning to match the desired behavior, and updated the existing test cases.
llvm-svn: 204350
2014-03-20 16:02:49 +00:00
Ted Kremenek
f3c93bb61b
[-Wunreachable-code] Simplify and broad -Wunreachable-code-return, including nontrivial returns.
...
The exception is return statements that include control-flow,
which are clearly doing something "interesting".
99% of the cases I examined for -Wunreachable-code that fired
on return statements were not interesting enough to warrant
being in -Wunreachable-code by default. Thus the move to
include them in -Wunreachable-code-return.
This simplifies a bunch of logic, including removing the ad hoc
logic to look for std::string literals.
llvm-svn: 204307
2014-03-20 06:07:30 +00:00
Jordan Rose
177b0a3600
scanf format checking: include the buffer length in the fix-it for %s.
...
Patch by Zach Davis!
llvm-svn: 204300
2014-03-20 03:32:39 +00:00
Fariborz Jahanian
ed39e7cfeb
Objective-C. Better fix for my previous patch
...
"No need to issue deprecated warning if deprecated method
in class extension is being implemented in primary class implementation
(no overriding is involved).
// rdar://16249335". No functionality change.
llvm-svn: 204159
2014-03-18 16:25:22 +00:00
Alexey Bataev
750a58bcd9
[OPENMP] DSA fix
...
llvm-svn: 204143
2014-03-18 12:19:12 +00:00
Alexey Bataev
a590b08308
[OPENMP] Simplified data-sharing attributes analysis.
...
llvm-svn: 204135
2014-03-18 10:23:46 +00:00
Fariborz Jahanian
19a08bbb9a
Objective-C. No need to issue deprecated warning if deprecated method
...
in class extension is being implemented in primary class implementation
(no overriding is involved).
// rdar://16249335
llvm-svn: 204093
2014-03-18 00:10:37 +00:00
Fariborz Jahanian
ba419ce21d
Objective-C. Consider blocks for designated initializer
...
warnings (warning or lack there of) as well since
blocks are another pattern for envoking other
designated initializers. // rdar://16323233
llvm-svn: 204081
2014-03-17 21:41:40 +00:00
Fariborz Jahanian
83d674e007
Objective-C. Do not warn when an instance method and
...
class method with the same selctor but different argument
types having one of them in class extension.
// rdar://16312105
llvm-svn: 204065
2014-03-17 17:46:10 +00:00
Aaron Ballman
804a7fb7ba
[C++11] Replacing DeclContext iterators using_directives_begin() and using_directives_end() with iterator_range using_directives(). Updating all of the usages of the iterators with range-based for loops, and removing the no-longer-needed iterator versions. Also used as an opportunity to normalize the name from getUsingDirectives() to using_directives().
...
llvm-svn: 204061
2014-03-17 17:14:12 +00:00
Aaron Ballman
5df6aa465e
[C++11] Replacing Scope iterators using_directives_begin() and using_directives_end() with iterator_range using_directives(). Updating all of the usages of the iterators with range-based for loops, and removing the no-longer-needed iterator versions.
...
llvm-svn: 204053
2014-03-17 17:03:37 +00:00
Aaron Ballman
35c5495bbb
[C++11] Replacing Scope iterators decl_begin() and decl_end() with iterator_range decls(). Updating all of the usages of the iterators with range-based for loops, and removing the no-longer-needed iterator versions.
...
llvm-svn: 204052
2014-03-17 16:55:25 +00:00
Aaron Ballman
83731469a1
[C++11] Replacing ObjCObjectPointerType iterators qual_begin() and qual_end() with iterator_range quals(). Updating all of the usages of the iterators with range-based for loops.
...
llvm-svn: 204048
2014-03-17 16:14:00 +00:00
Aaron Ballman
1683f7baf6
[C++11] Replacing ObjCObjectType iterators qual_begin() and qual_end() with iterator_range quals(). Updating all of the usages of the iterators with range-based for loops.
...
llvm-svn: 204047
2014-03-17 15:55:30 +00:00
Aaron Ballman
b088fbee3f
[C++11] Replacing FunctionProtoType iterators exception_begin() and exception_end() with iterator_range exceptions(). Updating all of the usages of the iterators with range-based for loops.
...
llvm-svn: 204046
2014-03-17 15:38:09 +00:00
Aaron Ballman
40bd0aaf68
[C++11] Replacing FunctionProtoType iterators param_type_begin() and param_type_end() with iterator_range param_types(). Updating all of the usages of the iterators with range-based for loops.
...
llvm-svn: 204045
2014-03-17 15:23:01 +00:00
Aaron Ballman
c7e4e219b5
[C++11] Replacing CompoundStmt iterators body_begin() and body_end() with iterator_range body(). Updating all of the usages of the iterators with range-based for loops.
...
llvm-svn: 204040
2014-03-17 14:19:37 +00:00
Richard Smith
d292b24f94
PR19152: If a variable template's type involves 'auto', instantiate the
...
initializer with the variable in order to determine the type.
llvm-svn: 204015
2014-03-16 01:00:40 +00:00
Ted Kremenek
ad8753c00e
Further refine -Wunreachable-code groups so that -Wno-unreachable-code-break doesn't turn off all unreachable code warnings.
...
Also relax unreachable 'break' and 'return' to not check for being
preceded by a call to 'noreturn'. That turns out to not be so
interesting in practice.
llvm-svn: 204000
2014-03-15 05:47:06 +00:00
Ted Kremenek
1a8641c1e7
Start breaking -Wunreachable-code up into different diagnostic groups.
...
Recent work on -Wunreachable-code has focused on suppressing uninteresting
unreachable code that center around "configuration values", but
there are still some set of cases that are sometimes interesting
or uninteresting depending on the codebase. For example, a dead
"break" statement may not be interesting for a particular codebase,
potentially because it is auto-generated or simply because code
is written defensively.
To address these workflow differences, -Wunreachable-code is now
broken into several diagnostic groups:
-Wunreachable-code: intended to be a reasonable "default" for
most users.
and then other groups that turn on more aggressive checking:
-Wunreachable-code-break: warn about dead break statements
-Wunreachable-code-trivial-return: warn about dead return statements
that return "trivial" values (e.g., return 0). Other return
statements that return non-trivial values are still reported
under -Wunreachable-code (this is an area subject to more refinement).
-Wunreachable-code-aggressive: supergroup that enables all these
groups.
The goal is to eventually make -Wunreachable-code good enough to
either be in -Wall or on-by-default, thus finessing these warnings
into different groups helps achieve maximum signal for more users.
TODO: the tests need to be updated to reflect this extra control
via diagnostic flags.
llvm-svn: 203994
2014-03-15 01:26:32 +00:00
Fariborz Jahanian
e3b5c99fde
Objective-C. Redo turning off designated initialization warnings on
...
'init' methods which are unavailable. Subclasses of NSObject
have to implement such methods as a common pattern to prevent
user's own implementation. // rdar://16305460
llvm-svn: 203984
2014-03-14 23:30:18 +00:00
Richard Smith
594461f02c
Call RequireCompleteType when performing ADL even if the type is already
...
complete. We hook into this check from a couple of other places (modules,
debug info) so it's not OK to elide the check if the type was already
complete.
llvm-svn: 203978
2014-03-14 22:07:27 +00:00
Aaron Ballman
e6f465e51f
[C++11] Removing the found_decls_begin() and found_decls_end() APIs and replacing with a range-only found_decls() API.
...
llvm-svn: 203975
2014-03-14 21:38:48 +00:00
Richard Smith
7e34fbdaa0
Add two missing entries to the C++11 support page. Bump one relevant diagnostic
...
(for an integer too large for any signed type) from Warning to ExtWarn -- it's
ill-formed in C++11 and C99 onwards, and UB during translation in C89 and
C++98. Add diagnostic groups for two relevant diagnostics.
llvm-svn: 203974
2014-03-14 21:21:24 +00:00
Aaron Ballman
e42430ea31
[C++11] Removing the types_begin() and types_end() APIs and replacing with a range-only types() API.
...
llvm-svn: 203971
2014-03-14 21:11:14 +00:00
Fariborz Jahanian
312104a716
Objective-C. Turn off designated initialization warnings on
...
'init' methods which are unavailable. Subclasses of NSObject
have to implement such methods as a common pattern to prevent
user's own implementation. // rdar://16305460
llvm-svn: 203966
2014-03-14 20:35:00 +00:00
Aaron Ballman
9371dd2287
[C++11] Replacing BlockDecl iterators capture_begin() and capture_end() with iterator_range captures(). Updating all of the usages of the iterators with range-based for loops.
...
llvm-svn: 203958
2014-03-14 18:34:04 +00:00
Fariborz Jahanian
6efab6eed7
Objective-C. Allow objc_designated_initializer for private
...
initializers; but only those declared in class extensions
(not in implementations). // rdar://16305347
llvm-svn: 203954
2014-03-14 18:19:46 +00:00
Aaron Ballman
535bbcccb1
[C++11] Replacing DeclStmt iterators decl_begin() and decl_end() with iterator_range decls(). Updating all of the usages of the iterators with range-based for loops.
...
llvm-svn: 203947
2014-03-14 17:01:24 +00:00
Aaron Ballman
2205d2a56a
[C++11] Replacing OMPThreadPrivateDecl and OMPClause iterators varlist_begin() and varlist_end() with iterator_range varlists(). Updating all of the usages of the iterators with range-based for loops.
...
llvm-svn: 203937
2014-03-14 15:55:35 +00:00
Aaron Ballman
576114e676
[C++11] Replacing DeclContext iterators lookups_begin() and lookups_end() with iterator_range lookups(). Similar for noload_lookups(). Updating all of the usages of the iterators with range-based for loops.
...
llvm-svn: 203933
2014-03-14 15:28:49 +00:00
Aaron Ballman
d85eff49a3
[C++11] Replacing ObjCCategoryDecl iterators propimpl_begin() and propimpl_end() with iterator_range property_impls(). Updating all of the usages of the iterators with range-based for loops.
...
llvm-svn: 203930
2014-03-14 15:02:45 +00:00
Aaron Ballman
19a417699f
[C++11] Replacing ObjCCategoryDecl iterators protocol_begin() and protocol_end() with iterator_range protocols(). Updating all of the usages of the iterators with range-based for loops.
...
llvm-svn: 203922
2014-03-14 12:55:57 +00:00
Aaron Ballman
0f6e64d505
[C++11] Replacing ObjCProtocolDecl iterators protocol_begin() and protocol_end() with iterator_range protocols(). Updating all of the usages of the iterators with range-based for loops.
...
llvm-svn: 203863
2014-03-13 22:58:06 +00:00
Aaron Ballman
b4a5345598
[C++11] Replacing ObjCInterfaceDecl iterators known_extensions_begin() and known_extensions_end() with iterator_range known_extensions(). Updating all of the usages of the iterators with range-based for loops.
...
llvm-svn: 203857
2014-03-13 21:57:01 +00:00