| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
| |
diagnosing this code as an error when it should, so I've filed
http://llvm.org/bugs/show_bug.cgi?id=7325.
llvm-svn: 105683
|
| |
|
|
|
|
|
|
| |
codegen.
Parenthesize macro args
llvm-svn: 105682
|
| |
|
|
|
|
| |
download it through viewvc.
llvm-svn: 105681
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- Refactored LengthModifier to be a class.
- Added toString methods in all member classes of FormatSpecifier.
- FixIt suggestions keep user specified flags unless incorrect.
Limitations:
- The suggestions are not conversion specifier sensitive. For example, if we have a 'pad with zeroes' flag, and the correction is a string conversion specifier, we do not remove the flag. Clang will warn us on the next compilation.
A test/Sema/format-strings-fixit.c
M include/clang/Analysis/Analyses/PrintfFormatString.h
M lib/Analysis/PrintfFormatString.cpp
M lib/Sema/SemaChecking.cpp
llvm-svn: 105680
|
| |
|
|
| |
llvm-svn: 105679
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
being a subsequence of another standard conversion sequence. Instead
of requiring exact type equality for the second conversion step,
require type *similarity*, which is type equality with cv-qualifiers
removed at all levels. This appears to match the behavior of EDG and
VC++ (albeit not GCC), and feels more intuitive. Big thanks to John
for the line of reasoning that supports this change: since
cv-qualifiers are orthogonal to the second conversion step, we should
ignore them in the type comparison.
llvm-svn: 105678
|
| |
|
|
| |
llvm-svn: 105677
|
| |
|
|
| |
llvm-svn: 105676
|
| |
|
|
|
|
|
|
|
| |
'class llvm::DAGDeltaAlgorithm' has virtual functions and accessible non-virtual destructor
Not sure if this is the best solution, but this class has state and some of the
classes that inherit from it also do, so it looks appropriate.
llvm-svn: 105675
|
| |
|
|
| |
llvm-svn: 105674
|
| |
|
|
| |
llvm-svn: 105673
|
| |
|
|
| |
llvm-svn: 105672
|
| |
|
|
| |
llvm-svn: 105671
|
| |
|
|
| |
llvm-svn: 105670
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
the same condition, it's important to make sure they are scheduled together
to avoid forming multiple IT blocks. I'm adding a pre-regalloc pass that forms
IT blocks early (by re-scheduling instructions and split basic blocks) to
attempt to fix this. This is not turned on by default since I am not sure this
is the right fix.
Another issue is llvm selects are modeled as two-address conditional moves.
This can be very bad when the copies before the conditional moves are not
coalesced away. Teach IT formation pass to move the copies above the IT block
(when legal) to avoid breaking the IT block.
llvm-svn: 105669
|
| |
|
|
| |
llvm-svn: 105668
|
| |
|
|
|
|
| |
Test out some basic constant-checking.
llvm-svn: 105667
|
| |
|
|
|
|
|
|
| |
constant arguments
Handle extract hi/lo with common code
llvm-svn: 105666
|
| |
|
|
| |
llvm-svn: 105665
|
| |
|
|
|
|
|
|
|
| |
type. This complements the existing function that determines if a type is a specific builtin type.
Modified:
include/clang/AST/Type.h
llvm-svn: 105664
|
| |
|
|
|
|
|
|
|
|
|
|
| |
instruction. Added the 64-bit version "jrcxz" so it is recognized and also
added the checks for incorrect uses of "jcxz" in 64-bit mode and "jrcxz" in
32-bit mode. Still to do is to correctly handle the encoding of the
instruction adding the Address-size override prefix byte, 0x67, when the width
of the count register is not the same as the mode the machine is running in.
Which for example means the encoding of "jecxz" depends if you are assembling
as a 32-bit target or a 64-bit target.
llvm-svn: 105661
|
| |
|
|
| |
llvm-svn: 105660
|
| |
|
|
|
|
|
|
|
| |
structures wouldn't have
their associated memory destroyed when using a BumpPtrAllocator. These objects internally use
a DenseMap.
llvm-svn: 105659
|
| |
|
|
|
|
|
|
| |
wouldn't have their
associated SmallVectors get deallocated.
llvm-svn: 105658
|
| |
|
|
| |
llvm-svn: 105657
|
| |
|
|
|
|
| |
that rip-relative address when executing in 32-bit mode.
llvm-svn: 105656
|
| |
|
|
| |
llvm-svn: 105653
|
| |
|
|
|
|
| |
immediates to avoid breaking the build.
llvm-svn: 105652
|
| |
|
|
| |
llvm-svn: 105651
|
| |
|
|
|
|
| |
__StaticInit section.
llvm-svn: 105650
|
| |
|
|
|
|
| |
global init or destruction functions.
llvm-svn: 105649
|
| |
|
|
|
|
| |
UniqueAggreDestructorCount from CodeGenFunction and let LLVM handle uniquing the internal functions instead.
llvm-svn: 105648
|
| |
|
|
| |
llvm-svn: 105647
|
| |
|
|
| |
llvm-svn: 105646
|
| |
|
|
|
|
| |
the register. While we're at it, make sure it's in the right one.
llvm-svn: 105645
|
| |
|
|
| |
llvm-svn: 105644
|
| |
|
|
|
|
|
| |
build a new declaration for that tag type that will be visible for
future lookups of that tag.
llvm-svn: 105643
|
| |
|
|
|
|
|
| |
determining whether one overload candidate is better than
another. Fixes PR7319.
llvm-svn: 105642
|
| |
|
|
|
|
| |
entry previously constructed via copy constructor.
llvm-svn: 105641
|
| |
|
|
| |
llvm-svn: 105640
|
| |
|
|
| |
llvm-svn: 105639
|
| |
|
|
|
|
| |
scattered throughout the project Makefiles.
llvm-svn: 105638
|
| |
|
|
|
|
| |
- This eliminates most dependencies on how Clang is installed relative to LLVM.
llvm-svn: 105637
|
| |
|
|
|
|
| |
they are out of date, instead of only testing if they exist.
llvm-svn: 105636
|
| |
|
|
| |
llvm-svn: 105634
|
| |
|
|
| |
llvm-svn: 105633
|
| |
|
|
|
|
| |
warnings, from Troy Straszheim! Fixes PR6163.
llvm-svn: 105631
|
| |
|
|
|
|
|
| |
Clang can load it as a plugin. Original fix by Troy D. Straszheim,
which I extended with Darwin support. Fixes PR6801.
llvm-svn: 105630
|
| |
|
|
| |
llvm-svn: 105628
|
| |
|
|
| |
llvm-svn: 105624
|