| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
"Foo/Foo.h"),
continue header lookup using the framework include as filename.
This allows us to conveniently treat
#import "Foo.h"
as an implicit module import if we can resolve "Foo/Foo.h" as such.
rdar://16042979
llvm-svn: 201419
|
| |
|
|
| |
llvm-svn: 201391
|
| |
|
|
| |
llvm-svn: 201384
|
| |
|
|
|
|
| |
the dwarf .debug_aranges section.
llvm-svn: 201379
|
| |
|
|
| |
llvm-svn: 201375
|
| |
|
|
|
|
|
|
|
| |
and the class name is shadowed by another member. Recovery still needs
to be figured out, which is non-trivial since the parser has already gone
down a much different path than if it had recognized the class template
as type instead of seeing the member that shadowed the class template.
llvm-svn: 201360
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
hasRawTextSupport() call
Summary:
AsmPrinter::EmitInlineAsm() will no longer use the EmitRawText() call for
targets with mature MC support. Such targets will always parse the inline
assembly (even when emitting assembly). Targets without mature MC support
continue to use EmitRawText() for assembly output.
The hasRawTextSupport() check in AsmPrinter::EmitInlineAsm() has been replaced
with MCAsmInfo::UseIntegratedAs which when true, causes the integrated assembler
to parse inline assembly (even when emitting assembly output). UseIntegratedAs
is set to true for targets that consider any failure to parse valid assembly
to be a bug. Target specific subclasses generally enable the integrated
assembler in their constructor. The default value can be overridden with
-no-integrated-as.
All tests that rely on inline assembly supporting invalid assembly (for example,
those that use mnemonics such as 'foo' or 'hello world') have been updated to
disable the integrated assembler.
Changes since review (and last commit attempt):
- Fixed test failures that were missed due to configuration of local build.
(fixes crash.ll and a couple others).
- Fixed tests that happened to pass because the local build was on X86
(should fix 2007-12-17-InvokeAsm.ll)
- mature-mc-support.ll's should no longer require all targets to be compiled.
(should fix ARM and PPC buildbots)
- Object output (-filetype=obj and similar) now forces the integrated assembler
to be enabled regardless of default setting or -no-integrated-as.
(should fix SystemZ buildbots)
Reviewers: rafael
Reviewed By: rafael
CC: llvm-commits
Differential Revision: http://llvm-reviews.chandlerc.com/D2686
llvm-svn: 201333
|
| |
|
|
| |
llvm-svn: 201312
|
| |
|
|
|
|
|
| |
XCore target has -fno-exception as the default option
Pass on "-fexceptions" flag to xcc (linker)
llvm-svn: 201310
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This commit is not strictly correct nor accounts for all uses (shared
objects, for example), but it allows one to test the compiler-rt library
on GNU targets.
Using this patch to run the test-suite has already shown me problems
on ARM. Since this is a Darwin-only flag, nobody is using it, so it
shouldn't be a problem.
I will need extension to deal with the shared cases, but since we're
not compiling libclang_rt.so, that's not yet applicable. Many other
problems will have to be fixed first in compiler-rt (such as removing
the 'arch' name from it and making it trully multi-arch, moving it to
the default lib directory, make both .a and .so variants, etc).
llvm-svn: 201307
|
| |
|
|
| |
llvm-svn: 201297
|
| |
|
|
|
|
| |
qualifier and updating the only affected test case.
llvm-svn: 201294
|
| |
|
|
|
|
|
|
|
| |
According to the GNU docs, zero-sized bitfields should not be affected by the
packed attribute.
Differential Revision: http://llvm-reviews.chandlerc.com/D2693
llvm-svn: 201288
|
| |
|
|
|
|
|
|
|
| |
useBitFieldTypeAlignment() and appears to ignore the special
bit-packing semantics of __attribute__((packed)).
Further flesh out an already-extensive comment.
llvm-svn: 201282
|
| |
|
|
| |
llvm-svn: 201281
|
| |
|
|
| |
llvm-svn: 201278
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
These features are new in VS 2013 and are necessary in order to layout
std::ostream correctly. Currently we have an ABI incompatibility when
self-hosting with the 2013 stdlib in our convertible_fwd_ostream wrapper
in gtest.
This change adds another implicit attribute, MSVtorDispAttr, because
implicit attributes are currently the best way to make sure the
information stays on class templates through instantiation.
Reviewers: majnemer
Differential Revision: http://llvm-reviews.chandlerc.com/D2746
llvm-svn: 201274
|
| |
|
|
|
|
| |
We don't support using the MS ABI with non-x86/x86_64 targets anyway.
llvm-svn: 201260
|
| |
|
|
|
|
|
|
| |
Allowing alignment past this point causes wrap around within clang.
N.B. GCC has the same restriction.
llvm-svn: 201254
|
| |
|
|
| |
llvm-svn: 201250
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This commit improves libclang to report the error condition when
CXTranslationUnit can not be created because of a stale PCH file. This allows
the caller, for example, to rebuild the PCH file and retry the request.
There two are APIs in libclang that return a CXTranslationUnit and don't
support reporting detailed errors (the only error condition is a NULL result).
For these APIs, a second, superior, version is introduced --
clang_createTranslationUnit2 and clang_parseTranslationUnit2. These functions
return a CXTranslationUnit indirectly and also return an error code. Old
functions are still supported and are nothing more than convenience wrappers
that ignore extended error codes.
As a cleanup, this commit also categorizes some libclang errors in the
functions I had to modify anyway.
llvm-svn: 201249
|
| |
|
|
|
|
| |
information provided in the referenced radar.
llvm-svn: 201248
|
| |
|
|
|
|
|
|
| |
This reverts commit r201183.
The test, albeit undocumented and badly written is still testing something
useful. It will be updated in a subsequent commit.
llvm-svn: 201247
|
| |
|
|
|
|
|
|
| |
AsmPrinter::EmitInlineAsm() and remove hasRawTextSupport() call
It introduced multiple test failures in the buildbots.
llvm-svn: 201241
|
| |
|
|
|
|
| |
been in r201237.
llvm-svn: 201238
|
| |
|
|
|
|
| |
rdar://problem/16035743
llvm-svn: 201233
|
| |
|
|
|
|
|
|
| |
test/Modules/fmodules-validate-once-per-build-session.c
With -fdisable-module-hash, we can implement this with a simple 'cp'.
llvm-svn: 201231
|
| |
|
|
|
|
|
|
| |
gnuwin32 with %/t (instead of %t).
xargs didn't handle dosish paths, while find foo\bar\ emits dosish paths.
llvm-svn: 201228
|
| |
|
|
|
|
| |
source files for a module only once during)
llvm-svn: 201225
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
the build
When Clang loads the module, it verifies the user source files that the module
was built from. If any file was changed, the module is rebuilt. There are two
problems with this:
1. correctness: we don't verify system files (there are too many of them, and
stat'ing all of them would take a lot of time);
2. performance: the same module file is verified again and again during a
single build.
This change allows the build system to optimize source file verification. The
idea is based on the fact that while the project is being built, the source
files don't change. This allows us to verify the module only once during a
single build session. The build system passes a flag,
-fbuild-session-timestamp=, to inform Clang of the time when the build started.
The build system also requests to enable this feature by passing
-fmodules-validate-once-per-build-session. If these flags are not passed, the
behavior is not changed. When Clang verifies the module the first time, it
writes out a timestamp file. Then, when Clang loads the module the second
time, it finds a timestamp file, so it can compare the verification timestamp
of the module with the time when the build started. If the verification
timestamp is too old, the module is verified again, and the timestamp file is
updated.
llvm-svn: 201224
|
| |
|
|
|
|
|
|
| |
armv8/Cortex-A53/A57.
This was caused by r200708 which enabled the crypto feature for these cores.
llvm-svn: 201223
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
vptr injection must inject padding equivalent to the alignment of the
most aligned non-virtual subobject, not the alignment of the enclosing
record.
To fascilitate this change, don't let record layout observe the
alignment of the record until we've injected our vptrs. Also, do not
allow the alignment of vbases to affect required alignment until just
before we insert the vtordisp field.
llvm-svn: 201199
|
| |
|
|
|
|
|
|
|
|
| |
Another test that's testing through assembly from Clang which is
problematic. An attempt to upgrade this to just be an IR-generation test
was unsuccessful (I was unable to get this test to fail) but it looks
like there's other, better, test coverage in this area
(test/CodeGenObjC/debuginfo-properties.m) anyway.
llvm-svn: 201183
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
This test case doesn't belong in Clang (it's testing IndVarSimplify) but
in an effort to reproduce the test case this was intended to cover (by
essentially reverting r134441) I wasn't able to reproduce the failure
this test case should've produced. So I haven't ported this down to
LLVM, instead I'm just deleting it.
I suspect the test is just underconstrained, but I've no great interest
in trying hard to fix it right now - if anyone else wants to, I'd be
more than welcome to that.
llvm-svn: 201178
|
| |
|
|
|
|
|
|
|
| |
These flags control the inheritance model initially used by the
translation unit.
Differential Revision: http://llvm-reviews.chandlerc.com/D2741
llvm-svn: 201175
|
| |
|
|
|
|
|
|
|
|
| |
-Wnon-literal-null-conversion in C code.
It is actually useful to warn in such cases, thanks to Dmitri for pushing on this and making us see the light!
Related to rdar://15925483 and rdar://15922612. The latter radar is where the usefulness of the warning is most clear.
llvm-svn: 201165
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Thanks to r199467, __attribute__((nonnull)) (without arguments) can apply
directly to parameters, instead of being applied to the whole function.
However, the old form of nonnull (with an argument index) could also apply
to the arguments of function and block pointers, and both of these can be
passed as parameters.
Now, if 'nonnull' with an argument is found on a parameter, /and/ the
parameter is a function or block pointer, it is handled the old way.
PR18795
llvm-svn: 201162
|
| |
|
|
|
|
|
|
| |
Xcore target ABI requires const data that is externally visible
to be handled differently if it has C-language linkage rather than
C++ language linkage.
llvm-svn: 201142
|
| |
|
|
| |
llvm-svn: 201141
|
| |
|
|
|
|
|
|
|
|
| |
According to the AAPCS, we can split structs between GPRs and the stack,
except for when an argument has already been allocated on the stack. This
can occur when a large number of floating-point arguments fill up the VFP
registers, and are alllocated on the stack before the general-purpose argument
registers are full.
llvm-svn: 201137
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
extern.
This triggered a miscompilation of code using Boost's function_template.hpp
when it was included inside a PCH file. A local static within
that header would be treated as local extern, resulting in the wrong
mangling. This only occurred during PCH deserialization.
Fixes <rdar://problem/15975816> and <rdar://problem/15926311>.
llvm-svn: 201130
|
| |
|
|
|
|
|
|
|
| |
This will let us stage in the modeling of operator new. The -analyzer-config
opton 'c++-inline-allocators' is currently off by default.
Patch by Karthik Bhat!
llvm-svn: 201122
|
| |
|
|
|
|
|
|
|
|
| |
This option has the following effects:
* It adds the sspstrong IR attribute to each function within the CU.
* It defines the macro __SSP_STRONG__ with the value of 2.
Differential Revision: http://llvm-reviews.chandlerc.com/D2717
llvm-svn: 201120
|
| |
|
|
|
|
|
|
| |
Replaced cast and vreinterepret operations with
code to reinterpret bitwise the types float16_t and
int16_t.
llvm-svn: 201112
|
| |
|
|
|
|
| |
issue list.
llvm-svn: 201106
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Introduce a notion of a 'current representation method' for
pointers-to-members.
When starting out, this is set to 'best case' (representation method is
chosen by examining the class, selecting the smallest representation
that would work given the class definition or lack thereof).
This pragma allows the translation unit to dictate exactly what
representation to use, similar to how the inheritance model keywords
operate.
N.B. PCH support is forthcoming.
Differential Revision: http://llvm-reviews.chandlerc.com/D2723
llvm-svn: 201105
|
| |
|
|
|
|
|
| |
Create a new diagnostic, -Wignored-pragmas and use it to handle any
case where a pragma would have a side effect but is ignored.
llvm-svn: 201102
|
| |
|
|
| |
llvm-svn: 201100
|
| |
|
|
|
|
|
| |
nested-name-specifiers for typos unless the typo already has
a nested-name-specifier that is a template specialization.
llvm-svn: 201056
|
| |
|
|
|
|
|
|
|
|
| |
associated with the decl,
don't turn it into a type ref.
rdar://15907618
llvm-svn: 201042
|