| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
|
| |
inline' functions
unless they are used. I discussed this with Daniel Dunbar, and we agreed that this
provides an inconsistent warnings experience for the user and that there were
genuine cases where we wouldn't want to do this optimization.
llvm-svn: 100800
|
| |
|
|
|
|
|
|
|
| |
<tr1/hashtable> header, where a friend class template
std::tr1::__detail::_Map_base is declared with the wrong template
parameters. GCC doesn't catch the problem, so Clang does a little
back-flip to avoid diagnosing just this one instance of the problem.
llvm-svn: 100790
|
| |
|
|
|
|
| |
parameters list for encoding.
llvm-svn: 100788
|
| |
|
|
|
|
|
| |
Declarator that depends on it. This fixes several redundant errors and bad
recoveries.
llvm-svn: 100779
|
| |
|
|
| |
llvm-svn: 100778
|
| |
|
|
| |
llvm-svn: 100776
|
| |
|
|
| |
llvm-svn: 100775
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
__cxxabiv1::__fundamental_type_info in every translation
unit. Previously, we would perform name lookup for
__cxxabiv1::__fundamental_type_info at the end of IRGen for a each
translation unit, to determine whether it was present. If so, we we
produce type information for all of the fundamental types. However,
this name lookup causes PCH deserialization of a significant part of the
translation unit, which has a woeful impact on performance.
With this change, we now look at each record type after we've
generated its vtable to see if it is
__cxxabiv1::__fundamental_type_info. If so, we generate type info for
all of the fundamental types. This works because
__cxxabiv1::__fundamental_type_info should always have a key function
(typically the virtual destructor), that will be defined once in the
support library. The fundamental type information will end up there.
Fixes <rdar://problem/7840011>.
llvm-svn: 100772
|
| |
|
|
| |
llvm-svn: 100770
|
| |
|
|
| |
llvm-svn: 100753
|
| |
|
|
| |
llvm-svn: 100750
|
| |
|
|
|
|
| |
-dump-record-layouts a bit that Sema honors.
llvm-svn: 100747
|
| |
|
|
| |
llvm-svn: 100746
|
| |
|
|
|
|
| |
bit-field LValues to just store the base address of object containing the bit-field.
llvm-svn: 100745
|
| |
|
|
|
|
| |
methods. wip.
llvm-svn: 100734
|
| |
|
|
| |
llvm-svn: 100733
|
| |
|
|
| |
llvm-svn: 100732
|
| |
|
|
| |
llvm-svn: 100730
|
| |
|
|
|
|
|
| |
parameter, explicitly ask the user to give it arguments. We used to
complain that it wasn't a type and expect the user to figure it out.
llvm-svn: 100729
|
| |
|
|
|
|
| |
isNotEmpty calls.
llvm-svn: 100722
|
| |
|
|
|
|
|
| |
code won't actually get used yet because we don't handle non-type
parameter packs, but when we do, this code should jump in and work.
llvm-svn: 100716
|
| |
|
|
| |
llvm-svn: 100708
|
| |
|
|
| |
llvm-svn: 100707
|
| |
|
|
| |
llvm-svn: 100704
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
emitting diagnostics after it has produced that many errors. Give this a
default value of 20 which produces plenty of errors for people to fix before
recompiling but not so many that their entire console scrolls away when the
compiler gets confused. The experience looks like this:
$ clang foo.c
<tons of crap>
foo.c:102:3: error: unknown type name 'somethingbad'
somethingbad x;
^
fatal error: too many errors emitted, stopping now
36 warnings and 20 errors generated.
llvm-svn: 100689
|
| |
|
|
| |
llvm-svn: 100687
|
| |
|
|
|
|
|
|
|
| |
isn't any extra work to perform. Also, don't check for unused
parameters when the warnings will be suppressed anyway. Improves
performance of -fsyntax-only on 403.gcc's combine.c by ~2.5%.
<rdar://problem/7836787>
llvm-svn: 100686
|
| |
|
|
|
|
| |
Right now the limit is 0 (aka disabled)
llvm-svn: 100684
|
| |
|
|
|
|
|
|
| |
contain assignments
or similar side-effects.
llvm-svn: 100676
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
of errors and warnings. This allows us to emit something like this:
2 warnings and 1 error generated.
instead of:
3 diagnostics generated.
This also stops counting 'notes' because they are just follow-on information
about the previous diag, not a diagnostic in themselves.
llvm-svn: 100675
|
| |
|
|
|
|
|
|
|
|
|
| |
- When instantiating a friend type template, perform semantic
analysis on the resulting type.
- Downgrade the errors concerning friend type declarations that do
not refer to classes to ExtWarns in C++98/03. C++0x allows
practically any type to be befriended, and ignores the friend
declaration if the type is not a class.
llvm-svn: 100635
|
| |
|
|
|
|
|
|
| |
semantic analysis) and Sema::ActOnFriendTypeDecl (the action
callback). This is a prerequisite for improving template instantiation
of friend type declarations.
llvm-svn: 100633
|
| |
|
|
|
|
|
|
| |
to the intrinsic, even when math-errno is off.
Fixes rdar://problem/7828230 by falling back on the library function.
llvm-svn: 100613
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
have the code generate slap a srcloc metadata on inline asm nodes.
This allows us to diagnose invalid inline asms with such nice
diagnostics as:
<inline asm>:1:2: error: unrecognized instruction
abc incl %eax
^
asm.c:2:12: note: generated from here
__asm__ ("abc incl %0" : "+r" (X));
^
2 diagnostics generated.
llvm-svn: 100608
|
| |
|
|
|
|
| |
Fixes a spurious warning in LLVM.
llvm-svn: 100595
|
| |
|
|
|
|
| |
0 size.
llvm-svn: 100594
|
| |
|
|
|
|
|
|
| |
have a temporary object in C++.
Also fix a tag mismatch that Doug noticed.
llvm-svn: 100593
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
definitions, e.g., after
-
or
- (id)
we'll find all of the "likely" instance methods that one would want to
declare or define at this point. In the latter case, we only produce
results whose return types match "id".
llvm-svn: 100587
|
| |
|
|
| |
llvm-svn: 100583
|
| |
|
|
|
|
| |
Fixes radar 7823675.
llvm-svn: 100582
|
| |
|
|
|
|
| |
declared in categories.
llvm-svn: 100577
|
| |
|
|
|
|
|
| |
(void*) someFunction(5, 10, 15, 20);
where the cast is presumably meant to be to 'void'.
llvm-svn: 100574
|
| |
|
|
|
|
|
| |
them the same way as fields. This fixes a regression in RegionStore::RemoveDeadbindings()
that emerged from going to the cluster-based analysis.
llvm-svn: 100570
|
| |
|
|
|
|
|
|
| |
that protected members be used on objects of types which derive from the
naming class of the lookup. My first N attempts at this were poorly-founded,
largely because the standard is very badly worded here.
llvm-svn: 100562
|
| |
|
|
|
|
|
| |
while we're completing in the middle of a function call), also produce
"ordinary" name results that show what can be typed at that point.
llvm-svn: 100558
|
| |
|
|
| |
llvm-svn: 100557
|
| |
|
|
|
|
|
| |
statement or for ordinary names. This means that we won't show macros
when completing, e.g., member expressions such as "p->".
llvm-svn: 100555
|
| |
|
|
|
|
|
| |
down the set of code-completion results based on Objective-C
conventions.
llvm-svn: 100548
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
allowing backend errors to be mapped through clang's
diagnostics subsystem, including the backend location info.
We now get:
$ clang asm.c -c -o t.o -integrated-as
<inline asm>:1:2: error: unrecognized instruction
abc incl %eax
^
1 diagnostic generated.
With colors, and correct "# diagnostics generated".
llvm-svn: 100543
|
| |
|
|
| |
llvm-svn: 100537
|