| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
| |
extern entity being initialized is const.
llvm-svn: 101821
|
| |
|
|
|
|
|
| |
since it makes sense there to have const extern variables. Fixes
PR6495.
llvm-svn: 101818
|
| |
|
|
|
|
| |
weird; yes, it's what GCC does. Almost.
llvm-svn: 101803
|
| |
|
|
| |
llvm-svn: 101800
|
| |
|
|
| |
llvm-svn: 101797
|
| |
|
|
| |
llvm-svn: 101796
|
| |
|
|
|
|
| |
Update all of the testcases accordingly.
llvm-svn: 101795
|
| |
|
|
|
|
|
|
| |
look from an Objective-C class or category to its implementation, to
pick up synthesized ivars. Fixes a problem reported by David
Chisnall.
llvm-svn: 101792
|
| |
|
|
|
|
|
| |
in for pre-snowleoprd (NeXt runtime). Fixes
radar 7866951
llvm-svn: 101791
|
| |
|
|
|
|
|
|
| |
the method as available_externally.
Fixes PR6747
llvm-svn: 101757
|
| |
|
|
|
|
|
| |
as they are accessible in static methods in a class
local to the same function. Fixes PR6769.
llvm-svn: 101756
|
| |
|
|
|
|
| |
as a side-effect, remove two FIXMEs now fixed
llvm-svn: 101726
|
| |
|
|
|
|
|
|
| |
instantiating class members as part of an explicit
instantiation. Addresses a compilation problem in
Boost.Serialization.
llvm-svn: 101725
|
| |
|
|
|
|
|
|
|
| |
a qualified name. We weren't checking for an empty
nested-name-specifier when dealing with friend class templates
(although we were checking in the other places where we deal with this
paragraph). Fixes a Boost.Serialization showstopper.
llvm-svn: 101724
|
| |
|
|
|
|
| |
portable.
llvm-svn: 101719
|
| |
|
|
|
|
|
|
|
|
|
| |
resolution ([over.ics.ref]), we take some shortcuts required by the
standard that effectively permit binding of a const volatile reference
to an rvalue. We have to treat lightly here to avoid infinite
recursion.
Fixes PR6177.
llvm-svn: 101712
|
| |
|
|
|
|
|
| |
return types, and default arguments. This fixes PR6855 along with several
similar cases where we rejected valid code.
llvm-svn: 101706
|
| |
|
|
|
|
|
|
|
| |
reference binding to an rvalue of reference-compatible type, check
parameters after the first for complete parameter types and build any
required default function arguments. We're effectively simulating the
type-checking for a call without building the call itself.
llvm-svn: 101705
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
reference-compatible type, the implementation is permitted to make a
copy of the rvalue (or many such copies, even). However, even though
we don't make that copy, we are required to check for the presence of
a suitable copy constructor. With this change, we do.
Note that in C++0x we are not allowed to make these copies, so we test
both dialects separately.
Also note the FIXME in one of the C++03 tests, where we are not
instantiating default function arguments for the copy constructor we
pick (but do not call). The fix is obvious; eliminating the infinite
recursion it causes is not. Will address that next.
llvm-svn: 101704
|
| |
|
|
| |
llvm-svn: 101700
|
| |
|
|
|
|
| |
not issue a warning).
llvm-svn: 101699
|
| |
|
|
|
|
|
|
|
| |
temporary object. This is blindingly obvious from reading C++
[over.match.ctor]p1, but somehow I'd missed it and it took DR152 to
educate me. Adjust one test that was relying on this non-standard
behavior.
llvm-svn: 101688
|
| |
|
|
|
|
| |
where assigning to a bit-field member would overwrite other parts of the struct.
llvm-svn: 101681
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
resolution. There are two sources of problems involving user-defined
conversions that this change eliminates, along with providing simpler
interfaces for checking implicit conversions:
- It eliminates a case of infinite recursion found in Boost.
- It eliminates the search for the constructor needed to copy a temporary
generated by an implicit conversion from overload
resolution. Overload resolution assumes that, if it gets a value
of the parameter's class type (or a derived class thereof), there
is a way to copy if... even if there isn't. We now model this
properly.
llvm-svn: 101680
|
| |
|
|
| |
llvm-svn: 101678
|
| |
|
|
|
|
| |
affect alignment.
llvm-svn: 101673
|
| |
|
|
| |
llvm-svn: 101668
|
| |
|
|
|
|
| |
unused.
llvm-svn: 101643
|
| |
|
|
|
|
|
|
|
|
| |
void exit_picture()
{
char yuv_types[4][6]= {"4:0:0","4:2:0","4:2:2","4:4:4"};
foo(yuv_types);
}
llvm-svn: 101623
|
| |
|
|
| |
llvm-svn: 101611
|
| |
|
|
|
|
|
|
| |
checking into a single function and use that throughout. Remove some
now unnecessary diagnostics and update tests with now more accurate
diagnostics.
llvm-svn: 101610
|
| |
|
|
| |
llvm-svn: 101580
|
| |
|
|
|
|
|
| |
the result of comparisons are 'int' in C, it doesn't work to
test just the result type of the expression.
llvm-svn: 101576
|
| |
|
|
|
|
|
| |
do *not* suggest that the function could be attribute 'noreturn';
overridden functions may end up returning.
llvm-svn: 101572
|
| |
|
|
| |
llvm-svn: 101568
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
TryStaticImplicitCast (for references, class types, and everything
else, respectively) into a single invocation of
InitializationSequence.
One of the paths (for class types) was the only client of
Sema::TryInitializationByConstructor, which I have eliminated. This
also simplified the interface for much of the cast-checking logic,
eliminating yet more code.
I've kept the representation of C++ functional casts with <> 1
arguments the same, despite the fact that I hate it. That fix will
come soon. To satisfy my paranoia, I've bootstrapped + tested Clang
with these changes.
llvm-svn: 101549
|
| |
|
|
|
|
|
|
|
|
| |
shortened,
and we now include the file name that declares the symbol with no linkage in the USR.
USRs for such symbols are generated only in restructed cases, e.g., anonymous enum declarations,
typedefs, etc.
llvm-svn: 101542
|
| |
|
|
|
|
| |
this follows from C99 6.7.8p10: if it is a union, the first named member is initialized
llvm-svn: 101539
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
struct may cause it to shrink more than one byte. Before
my recent changes we compiled the new test into:
%0 = type { [6 x i8] }
@x = global %0 { [6 x i8] undef }, align 2 ; <%0*> [#uses=0]
which is obviously bogus. Now we compile it into:
%0 = type <{ i32, i8, i8 }>
@x = global %0 zeroinitializer, align 2 ; <%0*> [#uses=0]
Where the last byte only is tail padding.
llvm-svn: 101536
|
| |
|
|
|
|
| |
merge also a few tests I had here for this feature, and FileCheck'ize one file
llvm-svn: 101535
|
| |
|
|
|
|
| |
float. Fixes PR 6854.
llvm-svn: 101499
|
| |
|
|
| |
llvm-svn: 101467
|
| |
|
|
| |
llvm-svn: 101464
|
| |
|
|
|
|
|
| |
platform that typically uses glibc. Fixes a Boost.Thread compilation
failure.
llvm-svn: 101450
|
| |
|
|
|
|
|
|
| |
source line wider than the terminal where the associated fix-it line
is longer than the caret line. Previously, we would crash in this
case, which was rather unfortunate. Fixes <rdar://problem/7856226>.
llvm-svn: 101426
|
| |
|
|
|
|
|
|
|
|
|
| |
intended for redeclarations, fixing those that need it. Fixes PR6831.
This uncovered an issue where the C++ type-specifier-seq parsing logic
would try to perform name lookup on an identifier after it already had
a type-specifier, which could also lead to spurious ambiguity errors
(as in PR6831, but with a different test case).
llvm-svn: 101419
|
| |
|
|
|
|
|
|
| |
deposit the file
in the original source directory.
llvm-svn: 101402
|
| |
|
|
| |
llvm-svn: 101384
|
| |
|
|
| |
llvm-svn: 101381
|
| |
|
|
|
|
|
|
|
|
| |
the default
case in GRExprEngine::Visit (in r101129). Instead, enumerate all Stmt cases and have
no 'default' case in the switch statement. When we encounter a Stmt we don't handle,
we should explicitly add it to the switch statement.
llvm-svn: 101378
|