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
Aaron Ballman
f53d8dd37d
[C++11] Replacing ObjCInterfaceDecl iterators visible_extensions_begin() and visible_extensions_end() with iterator_range visible_extensions(). Updating all of the usages of the iterators with range-based for loops.
...
llvm-svn: 203855
2014-03-13 21:47:07 +00:00
Aaron Ballman
15063e19c6
[C++11] Replacing ObjCInterfaceDecl iterators known_categories_begin() and known_categories_end() with iterator_range known_categories(). Updating all of the usages of the iterators with range-based for loops.
...
llvm-svn: 203854
2014-03-13 21:35:02 +00:00
Aaron Ballman
3fe486a332
[C++11] Replacing ObjCInterfaceDecl iterators visible_categories_begin() and visible_categories_end() with iterator_range visible_categories(). Updating all of the usages of the iterators with range-based for loops.
...
llvm-svn: 203851
2014-03-13 21:23:55 +00:00
Aaron Ballman
59abbd4d9b
[C++11] Replacing ObjCInterfaceDecl iterators ivar_begin() and ivar_end() with iterator_range ivars(). Updating all of the usages of the iterators with range-based for loops.
...
llvm-svn: 203849
2014-03-13 21:09:43 +00:00
Aaron Ballman
a9f49e394c
[C++11] Replacing ObjCInterfaceDecl iterators all_referenced_protocol_begin() and all_referenced_protocol_end() with iterator_range all_referenced_protocols(). Updating all of the usages of the iterators with range-based for loops.
...
llvm-svn: 203848
2014-03-13 20:55:22 +00:00
Aaron Ballman
e937888e1c
[C++11] Replacing ObjCInterfaceDecl iterators protocol_loc_begin() and protocol_loc_end() with iterator_range protocol_locs(). Updating all of the usages of the iterators with range-based for loops.
...
llvm-svn: 203847
2014-03-13 20:34:24 +00:00
Stephan Tolksdorf
232670fc05
Refactor InstantiatingTemplate constructors
...
This patch factors the bodies of 9 constructors out into a single initialization
method.
Reviewed By: rsmith
Differential Revision: http://llvm-reviews.chandlerc.com/D3059
llvm-svn: 203846
2014-03-13 20:34:22 +00:00
Stephan Tolksdorf
eb7708d07a
Add SourceRange to err_not_tag_in_scope diagnostic in TreeTransform<...>::RebuildDependentNameType
...
Apparently the FIXME was overlooked when the source location information was
made available to the function.
Reviewed By: rsmith
Differential Revision: http://llvm-reviews.chandlerc.com/D3058
llvm-svn: 203845
2014-03-13 20:34:03 +00:00
Aaron Ballman
a49c5064a1
[C++11] Replacing ObjCInterfaceDecl iterators protocol_begin() and protocol_end() with iterator_range protocols(). Updating all of the usages of the iterators with range-based for loops.
...
Drive-by fixing some incorrect types where a for loop would be improperly using ObjCInterfaceDecl::protocol_iterator. No functional changes in these cases.
llvm-svn: 203842
2014-03-13 20:29:09 +00:00
Aaron Ballman
e8a7dc9889
[C++11] Replacing ObjCContainerDecl iterators classmeth_begin() and classmeth_end() with iterator_range class_methods(). Updating all of the usages of the iterators with range-based for loops.
...
llvm-svn: 203840
2014-03-13 20:11:06 +00:00
Aaron Ballman
f26acce6f7
[C++11] Replacing ObjCContainerDecl iterators instmeth_begin() and instmeth_end() with iterator_range instance_methods(). Updating all of the usages of the iterators with range-based for loops.
...
llvm-svn: 203839
2014-03-13 19:50:17 +00:00
Tim Northover
514fc61c09
CodeGen: use symbolic enumerators for memory order
...
It makes the code clearer and less error-prone to use our (already
known) special values for the various memory order cases.
llvm-svn: 203838
2014-03-13 19:25:52 +00:00
Tim Northover
9c177223bc
CodeGen: make use of weaker failure orders on cmpxchg.
...
This makes Clang take advantage of the recent IR addition of a
"failure" memory ordering requirement. As with the "success" ordering,
we try to emit just a single version if the expression is constant,
but fall back to runtime detection (to allow optimisation across
function-call boundaries).
rdar://problem/15996804
llvm-svn: 203837
2014-03-13 19:25:48 +00:00
Aaron Ballman
d174edffa0
Renaming the recently-created (r203830) props() range API to properties() for clarity.
...
llvm-svn: 203835
2014-03-13 19:11:50 +00:00
Aaron Ballman
aff18c0446
[C++11] Replacing ObjCContainerDecl iterators meth_begin() and meth_end() with iterator_range methods(). Updating all of the usages of the iterators with range-based for loops.
...
llvm-svn: 203832
2014-03-13 19:03:34 +00:00
Aaron Ballman
dc4bea4676
[C++11] Replacing ObjCContainerDecl iterators prop_begin() and prop_end() with iterator_range props(). Updating all of the usages of the iterators with range-based for loops.
...
llvm-svn: 203830
2014-03-13 18:47:37 +00:00
Aaron Ballman
91cdc28d93
[C++11] Replacing UsingDecl iterators shadow_begin() and shadow_end() with iterator_range shadows(). Updating all of the usages of the iterators with range-based for loops.
...
llvm-svn: 203825
2014-03-13 18:07:29 +00:00
Jordan Rose
821a3a0f77
[analyzer] Warn when passing pointers to const but uninitialized memory.
...
Passing a pointer to an uninitialized memory buffer is normally okay,
but if the function is declared to take a pointer-to-const then it's
very unlikely it will be modifying the buffer. In this case the analyzer
should warn that there will likely be a read of uninitialized memory.
This doesn't check all elements of an array, only the first one.
It also doesn't yet check Objective-C methods, only C functions and
C++ methods.
This is controlled by a new check: alpha.core.CallAndMessageUnInitRefArg.
Patch by Per Viberg!
llvm-svn: 203822
2014-03-13 17:55:39 +00:00
Aaron Ballman
9bc5f36099
[C++11] Replacing ObjCImplementationDecl iterators init_begin() and init_end() with iterator_range inits(). Updating all of the usages of the iterators with range-based for loops.
...
llvm-svn: 203820
2014-03-13 17:35:02 +00:00
Aaron Ballman
0ad78303de
[C++11] Replacing CXXRecordDecl iterators init_begin() and init_end() with iterator_range inits(). Updating all of the usages of the iterators with range-based for loops.
...
llvm-svn: 203819
2014-03-13 17:34:31 +00:00
Aaron Ballman
6def98ab5f
[C++11] Replacing CXXRecordDecl 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: 203817
2014-03-13 17:08:33 +00:00
Hans Wennborg
a316933e09
MS intrinsics: __interlockedbittestandset(64) (PR19054)
...
llvm-svn: 203816
2014-03-13 17:05:09 +00:00
Aaron Ballman
522a6ddf9e
[C++11] Replacing CXXRecordDecl iterators friend_begin() and friend_end() with iterator_range friends(). Updating all of the usages of the iterators with range-based for loops.
...
llvm-svn: 203815
2014-03-13 17:00:06 +00:00
Aaron Ballman
2a4bd6d189
[C++11] Replacing CXXRecordDecl iterators ctor_begin() and ctor_end() with iterator_range ctors(). Updating all of the usages of the iterators with range-based for loops.
...
llvm-svn: 203814
2014-03-13 16:51:27 +00:00
Ben Langmuir
d285c50390
Prevent outputting HeaderFileInfos for files not used as headers
...
When building an AST file, we don't want to output HeaderFileInfo
structures for files that are not actually used as headers in the
current context. This can lead to assuming that unrelated files have
include counts of 0, defeating multiple-include prevention.
This is accomplished by adding an IsValid bit to the HFI.
llvm-svn: 203813
2014-03-13 16:46:36 +00:00
Aaron Ballman
2b124d1a5d
[C++11] Replacing CXXRecordDecl iterators method_begin() and method_end() with iterator_range methods(). Updating all of the usages of the iterators with range-based for loops.
...
llvm-svn: 203812
2014-03-13 16:36:16 +00:00
Aaron Ballman
445a939db8
[C++11] Replacing CXXRecordDecl iterators vbases_begin() and vbases_end() with iterator_range vbases(). Updating all of the usages of the iterators with range-based for loops.
...
llvm-svn: 203808
2014-03-13 16:15:17 +00:00
Rafael Espindola
93c7a6532e
Simplify code. No functionality change.
...
llvm-svn: 203804
2014-03-13 15:47:50 +00:00
Aaron Ballman
574705ed7f
[C++11] Replacing CXXRecordDecl iterators bases_begin() and bases_end() with iterator_range bases(). Updating all of the usages of the iterators with range-based for loops.
...
llvm-svn: 203803
2014-03-13 15:41:46 +00:00
Alexander Kornienko
c2ee9cf861
Remove an unnecessary check for FormatTok not being null.
...
Summary:
This check hints clang analyzer, that FormatTok may be null, and it
reports a null pointer dereference error:
http://buildd-clang.debian.net/scan-build/report-827c64.html#Path28
Reviewers: djasper
Reviewed By: djasper
CC: cfe-commits, klimek
Differential Revision: http://llvm-reviews.chandlerc.com/D3040
llvm-svn: 203800
2014-03-13 13:59:48 +00:00
Daniel Jasper
ac7e34e778
clang-format: Prevent ObjC code from confusing the braced-init detection
...
This was leading to bad formatting, e.g.:
Before:
f(^{
@autoreleasepool {
if (a) {
g();
}
}
});
After:
f(^{
@autoreleasepool {
if (a) {
g();
}
}
});
llvm-svn: 203777
2014-03-13 10:11:17 +00:00
Craig Topper
2e5c11ff5c
[C++11] Add 'override' keyword to virtual methods that override their base class.
...
llvm-svn: 203769
2014-03-13 08:12:15 +00:00
Craig Topper
456705304a
De-virtualize a method. It's called through template magic and doesn't override anything.
...
llvm-svn: 203764
2014-03-13 07:14:47 +00:00
Craig Topper
34d8e21d32
Remove unreachable PragmaCaptured method. It's not a real PPCallback.
...
llvm-svn: 203759
2014-03-13 06:19:24 +00:00
Craig Topper
afa7cb3aa5
[C++11] Add 'override' keyword to virtual methods that override their base class.
...
llvm-svn: 203758
2014-03-13 06:07:04 +00:00
Craig Topper
3e89dfee00
[C++11] Add 'override' keyword to virtual methods that override their base class.
...
llvm-svn: 203746
2014-03-13 02:13:41 +00:00
Joerg Sonnenberger
52be0b4cf4
Always use --eh-frame-hdr on NetBSD, even for -static.
...
llvm-svn: 203742
2014-03-13 00:42:01 +00:00
Richard Smith
aae4058453
PR18275: If a member function of a class template is declared with a
...
const-qualified parameter type and the defined with a non-const-qualified
parameter type, the parameter is not const inside its body. Ensure that
the type we use when instantiating the body is the right one. Patch by
suyog sarda!
This is still rather unsatisfactory; it seems like it might be better to
instantiate at least the function parameters, and maybe the complete function
declaration, when we instantiate the definition for such a member function
(instead of reusing the declaration from inside the instantiated class
definition).
llvm-svn: 203741
2014-03-13 00:28:45 +00:00
Richard Smith
5b5d21ea1a
Only allow streaming exactly type 'bool' to a DiagnosticBuilder, not anything
...
that implicitly converts to 'bool' (such as pointers, and the first operand of
?:). Clean up issues found by this. Patch by Stephan Tolksdorf!
llvm-svn: 203735
2014-03-12 23:36:42 +00:00
Richard Smith
8e6002f3bd
Fix crash if delayed template parsing meets an erroneous trailing return type.
...
Based on a patch and test by Stephan Tolksdorf! Refactoring and fixing adjacent
brokenness by me.
llvm-svn: 203733
2014-03-12 23:14:33 +00:00
Hans Wennborg
d9be72ec44
MS intrinsics: implement the __movs and __stos intrinsics (PR19054)
...
llvm-svn: 203722
2014-03-12 22:00:32 +00:00
Hans Wennborg
a4421e03fa
MS intrinsics: implement __readgs{byte,word,dword,qword} (PR19054)
...
llvm-svn: 203715
2014-03-12 21:09:05 +00:00
Hans Wennborg
dd0f5304f6
MS intrinsics: don't declare __readeflags and __writeeflags in Intrin.h
...
They're already defined in ia32intrin.h, and this would cause including Intrin.h
in 64-bit mode to fail because of conflicting types. Update ms-intrin.cpp to
also run in 64-bit mode to catch things like this.
llvm-svn: 203714
2014-03-12 21:09:03 +00:00
Justin Bogner
d66a17d0a3
Revert "CodeGen: Use a binary format for instrumentation based profiling"
...
I've clearly done something wrong with how to get this to link
correctly. Reverting for now.
This reverts commit r203711.
llvm-svn: 203712
2014-03-12 21:06:31 +00:00
Justin Bogner
ff9a058267
CodeGen: Use a binary format for instrumentation based profiling
...
This updates CodeGenPGO to use the ProfileDataReader introduced to
llvm in r203703 and the new API for writing out the profile introduced
to compiler-rt in r203710.
llvm-svn: 203711
2014-03-12 20:53:16 +00:00
Roman Divacky
b048007243
Dont unconditionally add gcc4.2 include paths on FreeBSD.
...
Newer FreeBSD doesnt ship with gcc and defaults to using libc++.
llvm-svn: 203700
2014-03-12 19:32:42 +00:00
Fariborz Jahanian
44be154b04
Objective-C. Issue diagnostics on mismatched methods when their selector is used
...
in an @selector expression. // rdar://15794055
llvm-svn: 203693
2014-03-12 18:34:01 +00:00
Richard Smith
0fc7bdc821
PR19113: Emit 'vtable' TBAA metadata when loading a vptr in a pointer-to-member-function call.
...
llvm-svn: 203691
2014-03-12 18:26:14 +00:00
Justin Bogner
4c9c45c060
CodeGen: Move hot/cold logic out of PGOProfileData
...
llvm-svn: 203689
2014-03-12 18:14:32 +00:00