| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
overridden via remapping. Thus, when we create a "virtual" file in the
file manager, we still stat() the real file that lives behind it so
that we can provide proper uniquing based on inodes. This helps keep
the file manager much more consistent.
To take advantage of this when reparsing files in libclang, we disable
the use of the stat() cache when reparsing or performing code
completion, since the stat() cache is very likely to be out of date in
this use case.
llvm-svn: 124971
|
| |
|
|
|
|
| |
and probably only works for very basic use cases.
llvm-svn: 124970
|
| |
|
|
|
|
|
|
|
| |
say "out-of-line definition differ from the declaration in the return type" instead of
the silly "functions that differ only in their return type cannot be overloaded".
Addresses rdar://7980179.
llvm-svn: 124939
|
| |
|
|
|
|
| |
We now emit everything except unused implicit virtual member functions when building the vtable.
llvm-svn: 124935
|
| |
|
|
| |
llvm-svn: 124924
|
| |
|
|
|
|
|
|
| |
when selector metadata is generated, which is triggered
by at least on class implementation. This is to match gcc's
behavior. // rdar://8851684.
llvm-svn: 124909
|
| |
|
|
|
|
| |
we captured in the dependent case.
llvm-svn: 124887
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
id-expression, e.g.,
CurrentClass<T>::member
Previously, if CurrentClass<T> was dependent and not complete, we
would treat it as a dependent-scoped declaration reference expression,
even if CurrentClass<T> referred to the current instantiation.
Fixes PR8966 and improves type checking of templates.
llvm-svn: 124867
|
| |
|
|
|
|
|
| |
bit-field width nor the initializer value are type- or
value-dependent. Fixes PR8712.
llvm-svn: 124866
|
| |
|
|
|
|
|
| |
cv-qualifiers on the object against the cv-qualifiers on the member
function. Fixes PR8315.
llvm-svn: 124865
|
| |
|
|
| |
llvm-svn: 124863
|
| |
|
|
|
|
| |
anything but a instance method to a warning.
llvm-svn: 124858
|
| |
|
|
|
|
| |
[temp.param]p9 and C++ DR226. Fixes PR8747.
llvm-svn: 124856
|
| |
|
|
|
|
|
|
|
|
| |
it's okay for the following template parameters to not have default
arguments (since those template parameters can still be
deduced). Also, downgrade the error about default template arguments
in function templates to an extension warning, since this is a
harmless C++0x extension.
llvm-svn: 124855
|
| |
|
|
|
|
|
|
|
|
|
|
| |
The difference with gcc is that it warns if you overload virtual methods only if
the method doesn't also override any method. This is to cut down on the number of warnings
and make it more useful like reported here: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=20423.
If we want to warn that not all overloads are overriden we can have an additional
warning like -Wpartial-override.
-Woverloaded-virtual, unlike gcc, is added to -Wmost. Addresses rdar://8757630.
llvm-svn: 124805
|
| |
|
|
| |
llvm-svn: 124786
|
| |
|
|
|
|
|
|
|
|
|
| |
right for anonymous struct/union members led to me discovering some
seemingly broken code in that area of Sema, which I fixed, partly by
changing the representation of member pointer constants so that
IndirectFieldDecls aren't expanded. This led to assorted cleanups with
member pointers in CodeGen, and while I was doing that I saw some random
other things to clean up.
llvm-svn: 124785
|
| |
|
|
|
|
|
| |
This reopens PR99114, but that one at least can be avoided with an #include.
PR9130 cannot.
llvm-svn: 124780
|
| |
|
|
|
|
|
|
|
|
|
| |
is not defined in the current translation unit. Doing so lead to compile errors
such as PR9114.
Instead, when CodeGen is building the vtable, don't try to emit a definition
for functions that aren't marked used in the current translation unit.
Fixes PR9114.
llvm-svn: 124768
|
| |
|
|
|
|
| |
refer to the bad use, and the note to the variable declaration.
llvm-svn: 124758
|
| |
|
|
|
|
|
|
|
| |
savings of 25% sounds impressive, except that this amounted to only
about 360k in our standard "large" completion result set (40,000
results). Since code completion is performance-sensitive, the 4%
slowdown due to uniquing outweighs the 360k benefit.
llvm-svn: 124737
|
| |
|
|
| |
llvm-svn: 124735
|
| |
|
|
|
|
|
| |
on, as well as more reliably limiting invalid references to locals from
nested scopes.
llvm-svn: 124721
|
| |
|
|
|
|
| |
are in a macro. This is checked twice.
llvm-svn: 124714
|
| |
|
|
|
|
| |
speed but saves us about 25% of the memory usage for strings.
llvm-svn: 124704
|
| |
|
|
| |
llvm-svn: 124702
|
| |
|
|
|
|
|
| |
the string copying goes through a single place that can have
associated state.
llvm-svn: 124698
|
| |
|
|
|
|
|
|
|
| |
macro.
Macros frequently contain extra '()' to make instantiation less error prone.
This warning was flagging a ton of times on postgresql because of its use of macros.
llvm-svn: 124695
|
| |
|
|
|
|
| |
Fariborz for the hint!
llvm-svn: 124689
|
| |
|
|
|
|
| |
eliminating the need to copy those strings.
llvm-svn: 124683
|
| |
|
|
| |
llvm-svn: 124675
|
| |
|
|
|
|
|
|
|
|
|
|
| |
BumpPtrAllocator, rather than manually new/delete'ing them. This
optimization also allows us to avoid allocating memory for and copying
constant strings (e.g., "return", "class").
This also required embedding the priority and availability of results
within the code completion string, to avoid extra memory allocation
within libclang.
llvm-svn: 124673
|
| |
|
|
|
|
|
|
|
|
| |
inside parentheses.
It's highly likely that the user intended an assignment used as condition.
Addresses rdar://8848646.
llvm-svn: 124668
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
that doesn't include implicit dtors.
Implicit dtors confuse the ad hoc path-sensitivity of UninitializedValuesV2.cpp. This isn't
the ideal solution, as it will directly impact compile time, but should significantly reduce
the noise of -Wuninitialized on some code bases.
This immediately "fixes" the false positive reported in PR 9063, although this
isn't the right fix in the long run.
llvm-svn: 124667
|
| |
|
|
|
|
| |
from Alex Miller!
llvm-svn: 124663
|
| |
|
|
|
|
|
|
| |
extremely rambunctious, both on parsing and on template instantiation.
Calm it down, fixing an internal consistency assert on anonymous enum
instantiation manglings.
llvm-svn: 124653
|
| |
|
|
|
|
|
|
|
|
| |
"initializing" expression is
compatible, not having the same type.
Fix rdar://8183908 in which compatible vector types weren't initialized properly leading to a crash.
llvm-svn: 124637
|
| |
|
|
|
|
| |
CheckPointerTypesForAssignment.
llvm-svn: 124632
|
| |
|
|
| |
llvm-svn: 124620
|
| |
|
|
|
|
| |
working on canonical types already.
llvm-svn: 124618
|
| |
|
|
|
|
| |
logic.
llvm-svn: 124615
|
| |
|
|
|
|
|
|
|
|
|
| |
has custom getter or setter.
The rationale is that it is highly likely that the user's getter/setter isn't atomically implemented. Off by default.
Addresses rdar://8782645.
-Wcustom-atomic-properties and -Wimplicit-atomic-properties are under the -Watomic-properties group.
llvm-svn: 124609
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
conversions (<rdar://problem/8592139>) for overload resolution. The
conversion ranking mirrors C++'s conversion ranking fairly closely,
except that we use a same pseudo-subtyping relationship employed by
Objective-C pointer assignment rather than simple checking
derived-to-base conversions. This change covers:
- Conversions to pointers to a specific object type are better than
conversions to 'id', 'Class', qualified 'id', or qualified 'Class'
(note: GCC doesn't perform this ranking, but it matches C++'s rules
for ranking conversions to void*).
- Conversions to qualified 'id' or qualified 'Class' are better than
conversions to 'id' or 'Class', respectively.
- When two conversion sequences convert to the same type, rank the
conversions based on the relationship between the types we're
converting from.
- When two conversion sequences convert from the same non-id,
non-Class type, rank the conversions based on the relationship of
the types we're converting to. (note: GCC allows this ranking even
when converting from 'id', which is extremeley dangerous).
llvm-svn: 124591
|
| |
|
|
|
|
| |
Kramer for the hint!
llvm-svn: 124585
|
| |
|
|
|
|
|
|
|
| |
allow ref-qualifiers on function types used as template type
arguments. GNU actually allows cv-qualifiers on function types in many
places where it shouldn't, so we currently categorize this as a GNU
extension.
llvm-svn: 124584
|
| |
|
|
|
|
| |
rdar://8756445.
llvm-svn: 124582
|
| |
|
|
|
|
| |
Fixes rdar://8900456.
llvm-svn: 124581
|
| |
|
|
|
|
| |
exists a locally scoped extern with the same name.
llvm-svn: 124580
|
| |
|
|
| |
llvm-svn: 124579
|
| |
|
|
|
|
| |
rdar://8883302.
llvm-svn: 124578
|