| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
llvm-svn: 59903
|
|
|
|
| |
llvm-svn: 59899
|
|
|
|
| |
llvm-svn: 59889
|
|
|
|
| |
llvm-svn: 59887
|
|
|
|
| |
llvm-svn: 59886
|
|
|
|
| |
llvm-svn: 59884
|
|
|
|
| |
llvm-svn: 59881
|
|
|
|
| |
llvm-svn: 59879
|
|
|
|
|
|
| |
'implicit' property with no 'setter'.
llvm-svn: 59878
|
|
|
|
|
|
|
| |
Issuing diagnostics when assigning to read-only properties.
This is work in progress.
llvm-svn: 59874
|
|
|
|
|
|
| |
in the overload diagnostics.
llvm-svn: 59871
|
|
|
|
| |
llvm-svn: 59870
|
|
|
|
|
|
| |
ConcreteInt index for now.
llvm-svn: 59869
|
|
|
|
| |
llvm-svn: 59868
|
|
|
|
|
|
|
|
|
| |
clang executable (when built with gcc 4.2 on the mac) from 14519740 to
14495028 bytes. This shrinks individual object files as well: SemaChecking
from 23580->22248, SemaDeclObjc from 61368->57376, SemaExpr from
115628->110516, as well as several others.
llvm-svn: 59867
|
|
|
|
|
|
|
|
|
| |
would not eat the "-1" in "0x0p-1", but LiteralSupport would accept
it when extensions are on. This caused strangeness and failures
when hexfloats were properly treated as an extension (not error)
in LiteralSupport.
llvm-svn: 59865
|
|
|
|
|
|
|
|
| |
its call sites. This makes it more explicit when the hasError flag is
getting set and removes a confusing difference in behavior between
PP.Diag and Diag in this code.
llvm-svn: 59863
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
(and carefully calculated) effect of allowing the compiler to reason
about the aliasing properties of DiagnosticBuilder object better,
allowing the whole thing to be promoted to registers instead of
resulting in a ton of stack traffic.
While I'm not very concerned about the performance of the Diag() method
invocations, I *am* more concerned about their code size and impact on the
non-diagnostic code. This patch shrinks the clang executable (in
release-asserts mode with gcc-4.2) from 14523980 to 14519816 bytes. This
isn't much, but it shrinks the lexer from 38192 to 37776, PPDirectives.o
from 31116 to 28868 bytes, etc.
llvm-svn: 59862
|
|
|
|
| |
llvm-svn: 59860
|
|
|
|
| |
llvm-svn: 59859
|
|
|
|
| |
llvm-svn: 59858
|
|
|
|
| |
llvm-svn: 59857
|
|
|
|
|
|
|
| |
force the caller to check instead. This eliminates the need (and the
risk!) of weird null DiagnosticBuilder's floating around.
llvm-svn: 59856
|
|
|
|
| |
llvm-svn: 59853
|
|
|
|
|
|
|
|
|
|
| |
one for building up the diagnostic that is in flight (DiagnosticBuilder)
and one for pulling structured information out of the diagnostic when
formatting and presenting it.
There is no functionality change with this patch.
llvm-svn: 59849
|
|
|
|
|
|
| |
handles transitions in the preprocessor state.
llvm-svn: 59845
|
|
|
|
| |
llvm-svn: 59843
|
|
|
|
|
|
| |
the file to include is checked for being an identifier.
llvm-svn: 59842
|
|
|
|
|
|
| |
for #include directives.
llvm-svn: 59840
|
|
|
|
| |
llvm-svn: 59838
|
|
|
|
|
|
| |
This version uses VLAs to represent arrays. I'll try an alternative way next, but I want this safe first.
llvm-svn: 59835
|
|
|
|
| |
llvm-svn: 59831
|
|
|
|
| |
llvm-svn: 59829
|
|
|
|
|
|
| |
themselves for gc API generation purposes.
llvm-svn: 59828
|
|
|
|
|
|
| |
memcpy/memmove etc.
llvm-svn: 59824
|
|
|
|
| |
llvm-svn: 59822
|
|
|
|
| |
llvm-svn: 59821
|
|
|
|
| |
llvm-svn: 59820
|
|
|
|
|
|
| |
cv-qualifiers
llvm-svn: 59819
|
|
|
|
|
|
| |
identifier for functions that might not have one
llvm-svn: 59818
|
|
|
|
| |
llvm-svn: 59806
|
|
|
|
| |
llvm-svn: 59805
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
strings. This allows us to have considerable flexibility in how
these things are displayed and provides extra information that
allows us to merge away diagnostics that are very similar.
Diagnostic modifiers are a string of characters with the regex
[-a-z]+ that occur between the % and digit. They may
optionally have an argument that can parameterize them.
For now, I've added two example modifiers. One is a very useful
tool that allows you to factor commonality across diagnostics
that need single words or phrases combined. Basically you can
use %select{a|b|c}4 with with an integer argument that selects
either a/b/c based on an integer value in the range [0..3).
The second modifier is also an integer modifier, aimed to help
English diagnostics handle plurality. "%s3" prints to 's' if
integer argument #3 is not 1, otherwise it prints to nothing.
I'm fully aware that 's' is an English concept and doesn't
apply to all situations (mouse vs mice). However, this is very
useful and we can add other crazy modifiers once we add support
for polish! ;-)
I converted a couple C++ diagnostics over to use this as an
example, I'd appreciate it if others could merge the other
likely candiates. If you have other modifiers that you want,
lets talk on cfe-dev.
llvm-svn: 59803
|
|
|
|
|
|
| |
and fall through better.
llvm-svn: 59799
|
|
|
|
| |
llvm-svn: 59791
|
|
|
|
| |
llvm-svn: 59789
|
|
|
|
|
|
| |
- Move out logic for handling the end-of-file to LexEndOfFile (to match the Lexer) class. The logic now mirrors the Lexer class more, which allows us to pass most of the Preprocessor test cases.
llvm-svn: 59768
|
|
|
|
|
|
| |
code gen. method.
llvm-svn: 59767
|
|
|
|
|
|
| |
- Add check for returning an undefined value to a caller.
llvm-svn: 59764
|
|
|
|
|
|
| |
write-barriers.
llvm-svn: 59748
|