| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
| |
llvm-svn: 129265
|
| |
|
|
|
|
|
| |
CodeGenFunction::EmitDynamicCast always return null or throw a bad_cast
exception.
llvm-svn: 129264
|
| |
|
|
|
|
| |
I added.
llvm-svn: 129263
|
| |
|
|
| |
llvm-svn: 129262
|
| |
|
|
|
|
| |
functionality change.
llvm-svn: 129261
|
| |
|
|
| |
llvm-svn: 129260
|
| |
|
|
|
|
| |
match on huge chunks of LLVM output.
llvm-svn: 129258
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
represents a dynamic cast where we know that the result is always null.
For example:
struct A {
virtual ~A();
};
struct B final : A { };
struct C { };
bool f(B* b) {
return dynamic_cast<C*>(b);
}
llvm-svn: 129256
|
| |
|
|
|
|
| |
and move a vector-splat check to follow l-value conversion.
llvm-svn: 129254
|
| |
|
|
|
|
| |
devirtualized. Fixes the second half of PR9660.
llvm-svn: 129253
|
| |
|
|
|
|
| |
one half of PR9660.
llvm-svn: 129252
|
| |
|
|
|
|
| |
functions in the class.
llvm-svn: 129250
|
| |
|
|
| |
llvm-svn: 129246
|
| |
|
|
|
|
|
|
|
|
|
|
| |
rewriting the literal when the value is integral. It is not uncommon to
see code written as:
const int kBigNumber = 42e5;
Without any real awareness that this is no longer an ICE. The note helps
automate and ease the process of fixing code that violates the warning.
llvm-svn: 129243
|
| |
|
|
| |
llvm-svn: 129242
|
| |
|
|
|
|
|
| |
While I'm here, FileCheck-ize the ext-vector test, so we actually check
what it is generating.
llvm-svn: 129241
|
| |
|
|
|
|
|
|
| |
of template class. The new value is ignored.
This fixes 1 error when parsing MSVC 2010 header files with clang.
llvm-svn: 129240
|
| |
|
|
|
|
|
|
|
|
| |
when building with Visual Studio. `clang.dll' and `clang.exe' would
have the same `clang.ilk' and `clang.pdb'. On a serial build those
files would be overwritten as clang.exe/clang.dll are created. On a
parallel build there is a risk of both files being written at the same
time. On that case VS fails.
llvm-svn: 129239
|
| |
|
|
|
|
| |
for them. The only major missing feature is references.
llvm-svn: 129234
|
| |
|
|
|
|
| |
check is triggered appropriately. Reported on cfe-dev.
llvm-svn: 129231
|
| |
|
|
|
|
| |
Validates inputs are not NULL, checks for overlapping strings, concatenates the strings checking for buffer overflow, sets the length of the destination string to the sum of the s1 length and the s2 length, binds the return value to the s1 value.
llvm-svn: 129215
|
| |
|
|
|
|
|
|
| |
Make KEYALL a combination of all other flags instead
of its own separate flag. Also rewrite the enum
definitions in hex instead of decimal.
llvm-svn: 129213
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Put the logic for deciding the default name for gcc/g++
in the only place that actually cares about it.
This also pushes an ifdef out of the generic driver code
to a little further down, when the target is actually known.
Hopefully it can be changed into just a runtime check
in the future.
llvm-svn: 129212
|
| |
|
|
|
|
| |
pageexec@freemail.hu, tweaks by me.
llvm-svn: 129206
|
| |
|
|
|
|
|
| |
warnings, and make its text appropriate for constant bool expressions
other than 'false'. This should finish off PR9612.
llvm-svn: 129205
|
| |
|
|
|
|
|
| |
type rather than just the literal 'false'. This begins fixing PR9612,
but the message is now wrong. WIP, the cleanup of the messaging is next.
llvm-svn: 129204
|
| |
|
|
| |
llvm-svn: 129202
|
| |
|
|
|
|
| |
per PR9577
llvm-svn: 129201
|
| |
|
|
|
|
| |
Patch by Dave Zarzycki!
llvm-svn: 129189
|
| |
|
|
|
|
| |
to eliminate a divide-by-8. No change in functionality intended.
llvm-svn: 129180
|
| |
|
|
|
|
| |
the base offset. No change in functionality intended.
llvm-svn: 129179
|
| |
|
|
| |
llvm-svn: 129178
|
| |
|
|
| |
llvm-svn: 129176
|
| |
|
|
|
|
|
|
| |
Nom Nom Nom.
Patch by Anton Korobeynikov!
llvm-svn: 129174
|
| |
|
|
| |
llvm-svn: 129173
|
| |
|
|
|
|
| |
a block. First part of // rdar://9254348
llvm-svn: 129171
|
| |
|
|
| |
llvm-svn: 129169
|
| |
|
|
| |
llvm-svn: 129167
|
| |
|
|
|
|
|
|
|
| |
inlining support isn't complete, and needs
to be reworked to model CallEnter/CallExit (just like all other calls). For now, treat constructors mostly
like other function calls, making the analysis of C++ code just a little more useful.
llvm-svn: 129166
|
| |
|
|
| |
llvm-svn: 129164
|
| |
|
|
| |
llvm-svn: 129162
|
| |
|
|
|
|
| |
zero also indicates one element array.
llvm-svn: 129157
|
| |
|
|
|
|
| |
options.
llvm-svn: 129153
|
| |
|
|
| |
llvm-svn: 129145
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This patch authored by Eric Niebler.
Many methods on the Sema class (e.g. ConvertPropertyForRValue) take Expr
pointers as in/out parameters (Expr *&). This is especially true for the
routines that apply implicit conversions to nodes in-place. This design is
workable only as long as those conversions cannot fail. If they are allowed
to fail, they need a way to report their failures. The typical way of doing
this in clang is to use an ExprResult, which has an extra bit to signal a
valid/invalid state. Returning ExprResult is de riguour elsewhere in the Sema
interface. We suggest changing the Expr *& parameters in the Sema interface
to ExprResult &. This increases interface consistency and maintainability.
This interface change is important for work supporting MS-style C++
properties. For reasons explained here
<http://lists.cs.uiuc.edu/pipermail/cfe-dev/2011-February/013180.html>,
seemingly trivial operations like rvalue/lvalue conversions that formerly
could not fail now can. (The reason is that given the semantics of the
feature, getter/setter method lookup cannot happen until the point of use, at
which point it may be found that the method does not exist, or it may have the
wrong type, or overload resolution may fail, or it may be inaccessible.)
llvm-svn: 129143
|
| |
|
|
|
|
|
| |
implement lhs's protocols. // rdar://9091389.
llvm-svn: 129142
|
| |
|
|
| |
llvm-svn: 129141
|
| |
|
|
|
|
| |
Chris's feedback.
llvm-svn: 129127
|
| |
|
|
|
|
|
| |
definitely have a path leading to them, and possibly have a path leading
to them; reflect that distinction in the warning text emitted.
llvm-svn: 129126
|
| |
|
|
| |
llvm-svn: 129108
|