| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
| |
llvm-svn: 198086
|
| |
|
|
|
|
| |
No functionality change.
llvm-svn: 198085
|
| |
|
|
| |
llvm-svn: 198083
|
| |
|
|
|
|
| |
Follows algorithm described here: http://msdn.microsoft.com/en-us/library/36k2cdd4.aspx
llvm-svn: 198082
|
| |
|
|
| |
llvm-svn: 198081
|
| |
|
|
|
|
|
|
|
|
|
| |
Most importantly, this makes our vtable layout match MSVC's. Previously
we would emit a return adjusting thunk whenever the return types
differed, even if the adjustment would have been trivial.
MSVC does emit some trivial return adjusting thunks, but only if there
was already an overridden method that required a return adjustment.
llvm-svn: 198080
|
| |
|
|
|
|
| |
the text from some diagnostics explicitly. No functional changes intended.
llvm-svn: 198078
|
| |
|
|
|
|
| |
manually quote. No functional changes intended.
llvm-svn: 198076
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
--disable-free mode
Summary:
This is an alternative to http://llvm-reviews.chandlerc.com/D2475
suggested by Chandler.
Reviewers: chandlerc, rnk, dblaikie
CC: cfe-commits, earthdok
Differential Revision: http://llvm-reviews.chandlerc.com/D2478
llvm-svn: 198073
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Before:
void aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa(int aaaaaaaaaaaaaaaaaaaaaaaaaaaa =
1);
After:
void aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa(
int aaaaaaaaaaaaaaaaaaaaaaaaaaaa = 1);
llvm-svn: 198070
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Thisadds a new warning that warns on code like this:
if (memcmp(a, b, sizeof(a) != 0))
The warning looks like:
test4.cc:5:30: warning: size argument in 'memcmp' call is a comparison [-Wmemsize-comparison]
if (memcmp(a, b, sizeof(a) != 0))
~~~~~~~~~~^~~~
test4.cc:5:7: note: did you mean to compare the result of 'memcmp' instead?
if (memcmp(a, b, sizeof(a) != 0))
^ ~
)
test4.cc:5:20: note: explicitly cast the argument to size_t to silence this warning
if (memcmp(a, b, sizeof(a) != 0))
^
(size_t)( )
1 warning generated.
This found 2 bugs in chromium and has 0 false positives on both chromium and
llvm.
The idea of triggering this warning on a binop in the size argument is due to
rnk.
llvm-svn: 198063
|
| |
|
|
| |
llvm-svn: 198060
|
| |
|
|
|
|
|
|
| |
With pragma pack, the layout engine would produce vfptrs that were
packed width rather than pointer width. This patch addresses the issue
and adds a test case.
llvm-svn: 198059
|
| |
|
|
|
|
| |
semantic attributes easier (and not require hard-coded strings). This requires a getSpelling() function on the Attr class, which is table-driven. Updates a handful of cases where a hard-coded string was being used to test the functionality out. Updating associated test cases for the improved quoting.
llvm-svn: 198055
|
| |
|
|
|
|
| |
name will be quoted in the diagnostic. Manually added some quotes to a diagnostic for consistency. Updated the test cases as appropriate.
llvm-svn: 198054
|
| |
|
|
|
|
|
|
| |
coverage. Parameterized the diagnostic, and made it more consistent with other attribute diagnostic wordings. Added test coverage.
Since this warning was generalized, it was also given a sensible warning group flag and the corresponding test was updated to reflect this.
llvm-svn: 198053
|
| |
|
|
|
|
| |
Thanks to Alp Toker for the naming suggestion!
llvm-svn: 198052
|
| |
|
|
|
|
| |
StringRefs. No functional changes intended.
llvm-svn: 198051
|
| |
|
|
| |
llvm-svn: 198050
|
| |
|
|
|
|
| |
intended.
llvm-svn: 198049
|
| |
|
|
|
|
| |
changes intended.
llvm-svn: 198047
|
| |
|
|
|
|
|
|
| |
has already been determined to be a ValueDecl by virtue of the attribute subjects.
Added some test case coverage as well.
llvm-svn: 198046
|
| |
|
|
|
|
|
|
|
| |
Even g++ considers this a valid C++ identifier and it should only have been
visible in C mode.
Also drop the associated low-value diagnostic.
llvm-svn: 197995
|
| |
|
|
| |
llvm-svn: 197994
|
| |
|
|
|
|
| |
(See discussion in the bug for why this isn't XFAILed.)
llvm-svn: 197991
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Before:
Constructor() : a(a) {}
After:
Constructor()
: a(a)
{
}
This style guide is pretty precise about this.
llvm-svn: 197980
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Introduce proper facilities to render token spellings using the diagnostic
formatter.
Replaces most of the hard-coded diagnostic messages related to expected tokens,
which all shared the same semantics but had to be multiply defined due to
variations in token order or quote marks.
The associated parser changes are largely mechanical but they expose
commonality in whole chunks of the parser that can now be factored away.
This commit uses C++11 typed enums along with a speculative legacy fallback
until the transition is complete.
Requires corresponding changes in LLVM r197895.
llvm-svn: 197972
|
| |
|
|
|
|
| |
A lot of callers have been using this facility incorrectly.
llvm-svn: 197920
|
| |
|
|
| |
llvm-svn: 197916
|
| |
|
|
|
|
| |
There's no need to escape strings and generate new DiagIDs for each message.
llvm-svn: 197915
|
| |
|
|
|
|
| |
STL header.
llvm-svn: 197912
|
| |
|
|
| |
llvm-svn: 197911
|
| |
|
|
|
|
| |
Introduced in r197900.
llvm-svn: 197906
|
| |
|
|
|
|
| |
Spotted by Edward
llvm-svn: 197903
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
The TextDiagnosticBuffer is meant to scrub SourceLocations as the input/output
SourceManagers may be different.
To be safe this commit restores the original behaviour though in practice
all current users seem to share a single SM.
Would be nice to replace TextDiagnosticBuffer now that more capable interfaces
like CaptureDiagnosticConsumer / StoredDiagnosticConsumer exist.
llvm-svn: 197902
|
| |
|
|
|
|
| |
Among other things, this fixes llvm.org/PR15269.
llvm-svn: 197900
|
| |
|
|
|
|
| |
and 'sext' not 'zext'. Modify the implementation by replacing zext with sext.
llvm-svn: 197898
|
| |
|
|
|
|
|
|
|
| |
These names weren't referred to anywhere in the source so don't need a written
name.
Depends on the TableGen fix for anonymous records in LLVM r197869.
llvm-svn: 197896
|
| |
|
|
|
|
| |
but silently ignored. Most of this feature was already reverted in June 2012 (r159016), this just cleans up the pieces left over.
llvm-svn: 197866
|
| |
|
|
|
|
| |
handler. This removes a silent dropping of the attributes when they are duplicated on a Decl.
llvm-svn: 197864
|
| |
|
|
|
|
|
|
|
|
| |
DiagIDs are a cached resource generally only constructed from compile-time
constant or stable format strings.
Escaping arbitrary messages and constructing DiagIDs from them didn't make
sense.
llvm-svn: 197856
|
| |
|
|
|
|
|
| |
This was setting a bad example. DiagIDs are a limited resource and the message
argument is evaluated as a format string.
llvm-svn: 197855
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This new warning detects when a function will recursively call itself on every
code path though that function. This catches simple recursive cases such as:
void foo() {
foo();
}
As well as more complex functions like:
void bar() {
if (test()) {
bar();
return;
} else {
bar();
}
return;
}
This warning uses the CFG. As with other CFG-based warnings, this is off
by default. Due to false positives, this warning is also disabled for
templated functions.
llvm-svn: 197853
|
| |
|
|
|
|
| |
${CMAKE_CURRENT_BINARY_DIR}/arm_neon.h, instead of copied arm_neon.h.
llvm-svn: 197852
|
| |
|
|
|
|
|
|
| |
Sema relies on this assumption.
Follow-up to r197848.
llvm-svn: 197850
|
| |
|
|
|
|
| |
intentional stack overflow.
llvm-svn: 197849
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Without this patch, record decls with invalid out-of-line method delcs would
sometimes be marked invalid, but not always. With this patch, they are
consistently never marked invalid.
(The code to do this was added in
http://lists.cs.uiuc.edu/pipermail/cfe-commits/Week-of-Mon-20100809/033154.html
, but the test from that revision is still passing.)
As far as I can tell, this was the only place where a class was marked invalid
after its definition was complete.
llvm-svn: 197848
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
Now CodeGenVTables has only one VTableContext object, which is either
Itanium or Microsoft.
Fixes a FIXME with no functionality change intended.
Ideally we could avoid the downcasts by pushing the things that
reference the Itanium vtable context into ItaniumCXXABI.cpp, but we're
not there yet.
llvm-svn: 197845
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
template instantiations, etc) in the list of members of a structure.
These members will still be lazily added to the relevant DWARF DIEs in
LLVM but when enumerating the members they will not appear. This allows
DWARF type units to be more consistent - the type unit will never
contain these special members (so all instances of the type should have
the same DIEs without some having some special members and others having
others) and the special members will be added to the skeletal
declaration that appears in the relevant compile_unit.
llvm-svn: 197844
|
| |
|
|
|
|
|
| |
The MD5 is checked since r197755 which is as good as comparing buffer contents
in this context.
llvm-svn: 197842
|