Aaron Ballman
da634f1dee
In my tests, I'm finding that declaring iterators in terms of ranges can sometimes have dangerous side-effects where the range temporary is destroyed, taking the underlying iterators out with it.
...
This changes the iterators so that they are no longer implemented in terms of ranges (so it's a very partial revert of the existing rangification efforts).
llvm-svn: 203299
2014-03-07 22:17:20 +00:00
Benjamin Kramer
4cadf292a5
[C++11] Revert uses of lambdas with array_pod_sort.
...
Looks like GCC implements the lambda->function pointer conversion differently.
llvm-svn: 203293
2014-03-07 21:51:58 +00:00
Benjamin Kramer
15ae783e14
[C++11] Convert sort predicates into lambdas.
...
No functionality change.
llvm-svn: 203289
2014-03-07 21:35:40 +00:00
Ted Kremenek
94d1617a1f
[-Wunreachable-code] Treat constant globals as configuration values in unreachable code heuristics.
...
This one could possibly be refined even further; e.g. looking
at the initializer and see if it is truly a configuration value.
llvm-svn: 203283
2014-03-07 20:51:13 +00:00
Ted Kremenek
91e45e056b
Zap another dead 'break' statement.
...
llvm-svn: 203282
2014-03-07 20:51:10 +00:00
Ahmed Charles
b89843299a
Replace OwningPtr with std::unique_ptr.
...
This compiles cleanly with lldb/lld/clang-tools-extra/llvm.
llvm-svn: 203279
2014-03-07 20:03:18 +00:00
Aaron Ballman
629afaefe0
[C++11] Replacing DeclBase iterators decls_begin() and decls_end() with iterator_range decls(). The same is true for the noload versions of these APIs. Updating all of the usages of the iterators with range-based for loops.
...
llvm-svn: 203278
2014-03-07 19:56:05 +00:00
Ahmed Charles
d72a5f103d
Replace OwningPtr::isValid() with conversion to bool.
...
This is a precursor to moving to std::unique_ptr.
llvm-svn: 203277
2014-03-07 19:51:06 +00:00
Ahmed Charles
9a16beb8bc
Change OwningPtr::take() to OwningPtr::release().
...
This is a precursor to moving to std::unique_ptr.
llvm-svn: 203275
2014-03-07 19:33:25 +00:00
Ted Kremenek
090a273b55
Remove dead return and simplify code.
...
llvm-svn: 203266
2014-03-07 18:53:05 +00:00
Aaron Ballman
29c9460d3e
Renaming the chains() ranged iterator to chain() per suggestion by Richard Smith.
...
llvm-svn: 203262
2014-03-07 18:36:15 +00:00
Aaron Ballman
1391608234
[C++11] Replacing IndirectFieldDecl iterators chain_begin() and chain_end() with iterator_range chains(). Updating all of the usages of the iterators with range-based for loops.
...
llvm-svn: 203261
2014-03-07 18:11:58 +00:00
Aaron Ballman
43b68bebe7
[C++11] Replacing ObjCMethodDecl iterators param_begin() and param_end() with iterator_range params(). Updating all of the usages of the iterators with range-based for loops.
...
llvm-svn: 203255
2014-03-07 17:50:17 +00:00
Aaron Ballman
b2b8b1dc66
[C++11] Replacing BlockDecl iterators param_begin() and param_end() with iterator_range params(). Updating all of the usages of the iterators with range-based for loops.
...
llvm-svn: 203250
2014-03-07 16:09:59 +00:00
Aaron Ballman
f6bf62e2d0
[C++11] Replacing FunctionDecl iterators param_begin() and param_end() with iterator_range params(). Updating all of the usages of the iterators with range-based for loops.
...
llvm-svn: 203248
2014-03-07 15:12:56 +00:00
Benjamin Kramer
ed2f476b20
[C++11] Replace LLVM-style type traits with C++11 standard ones.
...
No functionality change.
llvm-svn: 203241
2014-03-07 14:30:23 +00:00
Aaron Ballman
b105e49f28
[C++11] Replacing iterators ddiag_begin() and ddiag_end() with iterator_range ddiags(). Updating all of the usages of the iterators with range-based for loops.
...
llvm-svn: 203240
2014-03-07 14:09:15 +00:00
Aaron Ballman
63ab760ebe
[C++11] Updating getUsingDirectives to use iterator_range instead of a std::pair.
...
llvm-svn: 203239
2014-03-07 13:44:44 +00:00
Aaron Ballman
7dce1a840c
Fully reverting r203236 -- it seems the only bots that are happy are the MSVC bots.
...
llvm-svn: 203237
2014-03-07 13:13:38 +00:00
Aaron Ballman
690829696c
[C++11] Replacing iterators attr_begin() and attr_end() with iterator_range attrs(). Updating all of the usages of the iterators with range-based for loops.
...
llvm-svn: 203236
2014-03-07 12:50:00 +00:00
Alexey Bataev
d3db6acf7e
[OPENMP] Fix for threadprivate construct instantiatiation.
...
llvm-svn: 203225
2014-03-07 09:46:29 +00:00
Timur Iskhodzhanov
a895758203
Fix PR18967 -- Bad this adjustment for virtual methods in a diamond virtual inheritance hierarchy
...
llvm-svn: 203222
2014-03-07 09:34:59 +00:00
Alexey Bataev
d178ad4943
[OPENMP] Small update in threadprivate variables processing to fix template instantiation.
...
llvm-svn: 203214
2014-03-07 08:03:37 +00:00
Argyrios Kyrtzidis
e1974dcd92
[Preprocessor] Pass TranslationUnitKind to the preprocessor and if it is TU_Prefix
...
avoid warning for unused macros.
rdar://15034698
llvm-svn: 203213
2014-03-07 07:47:58 +00:00
Alexey Bataev
648250a2e5
[OPENMP] Fixed linked libraries for libiomp5 on Linux
...
llvm-svn: 203212
2014-03-07 07:43:52 +00:00
Ben Langmuir
198c168518
Add a bunch of missing changes from r203208
...
Somehow lost these in a git operation.
llvm-svn: 203210
2014-03-07 07:27:49 +00:00
Ted Kremenek
7d47cace55
Fix recent regressions in -Wreturn-type caused by heuristics to -Wunreachable-code.
...
I had forgotten that the same reachability code is used by both -Wreturn-type
and -Wunreachable-code, so the heuristics applied to the latter were indirectly
impacting the former.
To address this, the reachability code is more refactored so that whiled
the logic at its core is shared, the intention of the clients are better
captured and segregated in helper APIs.
Fixes PR19074, and also some false positives reported offline to me
by Nick Lewycky.
llvm-svn: 203209
2014-03-07 07:14:36 +00:00
Ben Langmuir
cb69b57b2a
Add dependencies from imported modules with -MD
...
Add module dependencies to the dependency files created by -MD/-MMD/etc.
by attaching an ASTReaderListener that will call into the dependency
file generator when a module input file is seen in the serialized AST.
llvm-svn: 203208
2014-03-07 06:40:32 +00:00
Alexey Bataev
96d1510c61
Another one fix for getSema()/getDerived().getSema()
...
llvm-svn: 203196
2014-03-07 04:16:48 +00:00
Alexey Bataev
3d76e777cd
Fixed getSema()/getDerived().getSema() diff pointed by Hal Finkel.
...
llvm-svn: 203195
2014-03-07 04:01:56 +00:00
Ted Kremenek
782f003c62
[-Wunreachable-code] Correctly expand artificial reachability to pruned '&&' and '||' branches involving configuration values.
...
llvm-svn: 203194
2014-03-07 02:25:53 +00:00
Ted Kremenek
c10830b308
[-Wunreachable-code] Teach reachable code analysis heuristics about more literal types.
...
llvm-svn: 203193
2014-03-07 02:25:50 +00:00
Yunzhong Gao
820c687e9e
The Visual Studio IDE changed behavior in VS2012. It used to be the case that
...
the clang diagnostic has to report a column number one less than the correct
value in order for the IDE to move the cursor to the expected location. This
behavior is changed in VS2012 and VS2013 so that the IDE is now expecting the
column number to match the actual source location.
Before: source(line, column-1): type: message
After: source(line, column): type: message
This patch changes -fdiagnostics-format=msvc to match the new VS2012 and VS2013
when fmsc-version is 1700 or greater.
Differential Revision: http://llvm-reviews.chandlerc.com/D2949
llvm-svn: 203183
2014-03-07 00:23:36 +00:00
Aaron Ballman
86c9390673
[C++11] Replacing iterators redecls_begin() and redecls_end() with iterator_range redecls(). Updating all of the usages of the iterators with range-based for loops, which allows the begin/end forms to be removed entirely.
...
llvm-svn: 203179
2014-03-06 23:45:36 +00:00
Fariborz Jahanian
328a7c4b8b
C. Compare vector sizes using their raw element size instead of
...
getTypeSize (which rounds up sizes) in order to issue diagnostics
when casting to mismatched vector sizes; instead of crashing in IRGen.
// rdar:// 16196902. Reviewed offline by John McCall.
llvm-svn: 203175
2014-03-06 22:47:09 +00:00
Rafael Espindola
060062a433
Use llvm.compiler.used instead of llvm.used for objc symbols.
...
LLVM currently has a hack (shouldEmitUsedDirectiveFor) that causes it to not
print no_dead_strip for symbols starting with 'l' or 'L'. These are exactly the
ones that the clang's objc codegen is producing. The net result, is that it is
equivalent to llvm.compiler.used.
The need for putting the private symbol in llvm.compiler.used should be clear
(the objc runtime uses them). The reason for also putting the weak symbols in
it is for LTO: ld64 will not ask us to preserve the it.
llvm-svn: 203172
2014-03-06 22:15:10 +00:00
Richard Smith
131daca01d
Remove a dead store, add a FIXME for another.
...
llvm-svn: 203169
2014-03-06 21:59:38 +00:00
Ismail Pazarbasi
be19ae05e7
Exclude invalid old decl from mismatching linkage assertion
...
This patch fixes PR18964. In linkage computation, assertion fails when
an old invalid declaration's linkage mismatches with the current
decl's one.
llvm-svn: 203168
2014-03-06 21:48:45 +00:00
Ted Kremenek
02548c08f8
Remove dead code I introduced 6 years, 4 months ago in r43518.
...
Found by -Wunreachable-code.
llvm-svn: 203167
2014-03-06 21:42:43 +00:00
Saleem Abdulrasool
29b82b631d
Update for LLVM API change
...
Use the new getObjectFormat/setObjectFormat instead of Environment now that the
file format is a separate field.
llvm-svn: 203161
2014-03-06 20:47:19 +00:00
Bob Wilson
c845c00a5b
PGO: Add support for Objective-C blocks.
...
llvm-svn: 203157
2014-03-06 20:24:27 +00:00
Richard Smith
2d70976fc0
Fix dead store and simplify. No functionality change (although the code is now
...
correct if MaxEditDistance were increased to something greater than 1).
llvm-svn: 203153
2014-03-06 20:00:05 +00:00
David Majnemer
34b4989658
MS ABI: Disambiguate the manglings for global guard variables
...
If a guard variable will be created for an entity at global scope,
then we cannot rely on the scope depth to disambiguate names for us.
Instead, mangle the entire variable into the guard to ensure it's uniqueness.
llvm-svn: 203151
2014-03-06 19:57:36 +00:00
Aaron Ballman
69bb592ad1
Based on usage, the NamedDecl is always set when constructing a CallingContext, but none of the other optional parameters are. Removing the optional parameters, and making the NamedDecl required.
...
No functional changes intended.
llvm-svn: 203149
2014-03-06 19:37:24 +00:00
Aaron Ballman
19842c437a
Refactored to use a simple helper function that wraps the logic of creating an SExprNode and returning the position in which it was inserted.
...
No functional change intended.
llvm-svn: 203148
2014-03-06 19:25:11 +00:00
David Majnemer
f55feec559
MS ABI: Fix the initializer/finalizer mangling for static data members
...
Initializers and finalizers for static data members have the variable's
access-specifier, storage-class, type and CV-qualifiers mangled in.
llvm-svn: 203145
2014-03-06 19:10:27 +00:00
Aaron Ballman
cea2609b59
Very minor simplification and typo correction; no functional changes intended.
...
llvm-svn: 203144
2014-03-06 19:10:16 +00:00
Rafael Espindola
70efc5b4db
Revert "Use private linkage for remaining GlobalVariables with private names."
...
This reverts commit r203059.
Revert while we discuss what does it mean to be private and weak.
llvm-svn: 203141
2014-03-06 18:54:12 +00:00
Richard Smith
6f548ec37e
Fix use-after-free detected by ASan bootstrap.
...
llvm-svn: 203140
2014-03-06 18:08:08 +00:00
Argyrios Kyrtzidis
38765b9c17
[ASTPrinter] 'SEL' isn't a ObjCObjectPointer, so we don't need to handle it in TypePrinter::printObjCObjectPointerBefore.
...
Suggested by Jordan.
llvm-svn: 203124
2014-03-06 15:31:56 +00:00