| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
AT_producer. Which includes clang's version information so we can tell
which version of the compiler was used.
This is second of the two steps to allow us to do this. The first was a
change to llvm-mc with revision 172630 to provide a method to set the
AT_producer string. This second step has the clang driver passing the value
of getClangFullVersion() via the new flag -dwarf-debug-producer when invoking
the integrated assembler on assembly source files. Then using the new
setDwarfDebugProducer() method to set the AT_producer string.
rdar://12888242
llvm-svn: 172758
|
| |
|
|
|
|
|
| |
the gcc driver and makes it possible to add -pie to $CC or similar and
have it apply in the right places.
llvm-svn: 172753
|
| |
|
|
|
|
| |
Part of rdar://12576868
llvm-svn: 172744
|
| |
|
|
|
|
|
|
|
|
|
|
| |
It is valid to do this:
printf("%u", (int)x);
But if we see this:
printf("%lu", (int)x);
...our fixit should suggest %d, not %u.
llvm-svn: 172739
|
| |
|
|
| |
llvm-svn: 172738
|
| |
|
|
|
|
| |
not supported.
llvm-svn: 172732
|
| |
|
|
|
|
|
|
|
|
|
| |
-fopenmp in the link step on Linux. There is probably more tweaking that
will need to take place to get good support for linking the relevant
libraries on all Linux distributions and/or on other platforms, but this
get's the ball moving and allows Clang to build programs which contain
OpenMP pragmas that can be safely ignored by a compiler that doesn't
implement them, and yet makes direct calls into the OpenMP runtime.
llvm-svn: 172715
|
| |
|
|
| |
llvm-svn: 172707
|
| |
|
|
|
|
|
|
| |
individually, rather than mixed output of stdout and stderr with 2>&1.
XFAIL(s) are removed.
llvm-svn: 172705
|
| |
|
|
| |
llvm-svn: 172697
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This is inspired by a number of false positives in real code, including
PR14968. I've added test cases reduced from these false positives to
test/Sema/unused-expr.c, as well as corresponding test cases that pass the
offending expressions as arguments to a no-op macro to ensure that we do warn
there.
This also removes my previous tweak from r166522/r166534, so that we warn on
unused cast expressions in macro arguments.
There were several test cases that were using -Wunused-value to test general
diagnostic emission features; I changed those to use other warnings or warn on
a macro argument expression. I stared at the test case for PR14399 for a while
with Richard Smith and we believe the new test case exercises the same
codepaths as before.
llvm-svn: 172696
|
| |
|
|
| |
llvm-svn: 172695
|
| |
|
|
|
|
| |
literals. As suggested by Sean Silva.
llvm-svn: 172694
|
| |
|
|
|
|
| |
in the LangRef).
llvm-svn: 172692
|
| |
|
|
|
|
|
|
| |
it apart from [[gnu::noreturn]] / __attribute__((noreturn)), since their
semantics are not equivalent (for instance, we treat [[gnu::noreturn]] as
affecting the function type, whereas [[noreturn]] does not).
llvm-svn: 172691
|
| |
|
|
|
|
|
| |
expressions which have undefined behavior due to multiple unsequenced
modifications or an unsequenced modification and use of a variable.
llvm-svn: 172690
|
| |
|
|
|
|
| |
Investigating.
llvm-svn: 172689
|
| |
|
|
|
|
|
| |
undefined, and don't find methods or protocols within those protocol
definitions. This completes <rdar://problem/10634711>.
llvm-svn: 172686
|
| |
|
|
| |
llvm-svn: 172684
|
| |
|
|
|
|
| |
produce more inline layout metadata. // rdar://12752901
llvm-svn: 172683
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
dictionary literal
if we can see the elements of the arrays.
for example:
NSDictionary *dict = [NSDictionary dictionaryWithObjects:[NSArray arrayWithObjects:@"1", @"2", nil] forKeys:[NSArray arrayWithObjects:@"A", @"B", nil]];
-->
NSDictionary *dict = @{ @"A" : @"1", @"B" : @"2" };
rdar://12428166
llvm-svn: 172679
|
| |
|
|
| |
llvm-svn: 172678
|
| |
|
|
|
|
| |
Fixes PR14577.
llvm-svn: 172676
|
| |
|
|
|
|
|
|
| |
This fixes pr14946. The problem was that the linkage computation was done too
early, so things like "extern int a;" would be given external linkage, even if
a previous declaration was static.
llvm-svn: 172667
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
consider (sub)module visibility.
The bulk of this change replaces myriad hand-rolled loops over the
linked list of Objective-C categories/extensions attached to an
interface declaration with loops using one of the four new category
iterator kinds:
visible_categories_iterator: Iterates over all visible categories
and extensions, hiding any that have their "hidden" bit set. This is
by far the most commonly used iterator.
known_categories_iterator: Iterates over all categories and
extensions, ignoring the "hidden" bit. This tends to be used for
redeclaration-like traversals.
visible_extensions_iterator: Iterates over all visible extensions,
hiding any that have their "hidden" bit set.
known_extensions_iterator: Iterates over all extensions, whether
they are visible to normal name lookup or not.
The effect of this change is that any uses of the visible_ iterators
will respect module-import visibility. See the new tests for examples.
Note that the old accessors for categories and extensions are gone;
there are *Raw() forms for some of them, for those (few) areas of the
compiler that have to manipulate the linked list of categories
directly. This is generally discouraged.
Part two of <rdar://problem/10634711>.
llvm-svn: 172665
|
| |
|
|
| |
llvm-svn: 172660
|
| |
|
|
|
|
|
| |
I think the main issue was the lack of -ffreestanding, which pulled in
the host's stdint.h. After that things went rapidly downhill.
llvm-svn: 172653
|
| |
|
|
| |
llvm-svn: 172650
|
| |
|
|
| |
llvm-svn: 172648
|
| |
|
|
|
|
| |
is used outside of a preprocessor directive. This fixes PR14837.
llvm-svn: 172639
|
| |
|
|
|
|
|
| |
when the methods are declared in a submodule that has not yet been
imported. Part of <rdar://problem/10634711>.
llvm-svn: 172635
|
| |
|
|
|
|
| |
Waiting for new llvm attribute code for the next step.
llvm-svn: 172626
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Previously we would serialize the macro redefinitions as a list, part of
the identifier, and try to chain them together across modules individually
without having the info that they were already chained at definition time.
Change this by serializing the macro redefinition chain and then try
to synthesize the chain parts across modules. This allows us to correctly
pinpoint when 2 different definitions are ambiguous because they came from
unrelated modules.
Fixes bogus "ambiguous expansion of macro" warning when a macro in a PCH
is redefined without undef'ing it first.
rdar://13016031
llvm-svn: 172620
|
| |
|
|
| |
llvm-svn: 172605
|
| |
|
|
|
|
|
|
| |
the feature "shell-preserves-root".
MSYS transforms '/' to 'X:/mingwroot/'.
llvm-svn: 172598
|
| |
|
|
|
|
| |
assignment
llvm-svn: 172597
|
| |
|
|
| |
llvm-svn: 172596
|
| |
|
|
|
|
| |
users can explicitly enable/disable modules autolinking.
llvm-svn: 172592
|
| |
|
|
|
|
|
|
|
|
| |
order. Describe static data members to metadata using new interfaces.
Part of PR14471.
Patch by Paul Robinson!
llvm-svn: 172591
|
| |
|
|
|
|
|
| |
but not vice-versa. Fix bug introduced in r172567 and noticed by
Jordan, thanks!
llvm-svn: 172586
|
| |
|
|
|
|
|
| |
parameters (per C++ [temp.param]p8) when computing the type of a
reference to a non-type template parameter. Fixes <rdar://problem/13000548>.
llvm-svn: 172585
|
| |
|
|
|
|
|
|
| |
overriding and overridden method, allow the overridden method to have
a narrower contract (introduced earlier, deprecated/obsoleted later)
than the overriding method. Fixes <rdar://problem/12992023>.
llvm-svn: 172567
|
| |
|
|
| |
llvm-svn: 172548
|
| |
|
|
| |
llvm-svn: 172545
|
| |
|
|
|
|
|
|
| |
resolving an overloaded function reference within an initializer list.
Previously we would try to resolve the overloaded function reference without
first stripping off the InitListExpr wrapper.
llvm-svn: 172517
|
| |
|
|
| |
llvm-svn: 172514
|
| |
|
|
|
|
|
|
|
|
|
| |
with function definitions.
We really should remove Parser::isDeclarationAfterDeclarator entirely, since
it's meaningless in C++11 (an open brace could be either a function definition
or an initializer, which is what it's trying to differentiate between). The
other caller of it happens to be correct right now...
llvm-svn: 172510
|
| |
|
|
| |
llvm-svn: 172509
|
| |
|
|
|
|
|
|
|
|
|
| |
attributes appertain to a declaration, even though they would be much more
naturally modelled as appertaining to a function type. Previously, we would
try to distribute them from the declarator to the function type, then
reject them for being at an incorrect location. Now, we just distribute them
as far as the declarator; the existing attribute handling code can actually
apply them there just fine.
llvm-svn: 172504
|
| |
|
|
|
|
|
|
|
|
| |
driver needs to process the
warning options to setup diagnostic state, but should not be emitting warnings as these would be
rudndant with what the frontend emits.
rdar://13001556
llvm-svn: 172497
|