| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
|
|
| |
a subprocess invocation which is pretty significant on Windows. It also
likely saves a bunch of thrashing the host machine needlessly. Finally
it makes the tests much more predictable and less dependent on the host.
For example 'header_lookup1.c' was passing '-fno-ms-extensions' just to
thwart the host detection adding it into the compilation. By runnig CC1
directly we don't have to deal with such oddities.
llvm-svn: 199308
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
test the CC1 layer.
This actually uncovered that the test semes to no longer be passing for
the reasons intended. =[ The name of the test would lead me to believe
that it should be testing the semantics of noreturn in the static
analyzer.... but there are in fact no -verify assertions about noreturn
that i can find. And the noreturn checker is no longer in 'alpha.core'.
It is in 'core.builtins'. The test *does* have one assertion for a null
dereference warning. This *also* isn't in 'alpha.core', but the driver
inserts a pile of other checker packages, including 'core' which has
this warning.
So I have switch the RUN line to actually do the minimal thing that this
test currently exercises, but someone who works on the static analyzer
should probably look at this and either nuke it or move it to actually
check the noreturn behavior.
llvm-svn: 199307
|
| |
|
|
| |
llvm-svn: 199306
|
| |
|
|
|
|
| |
__lsan_is_turned_off, but this time hide it under __has_feature(address_sanitizer); also include <sanitizer/lsan_interface.h>
llvm-svn: 199303
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
Way back in r129652 we tried to avoid emitting an empty block at -O0
for switch cases that did nothing but break. This led to a poor
debugging experience as reported in PR9796, so we disabled the
optimization for -O0 but left it in for higher optimization levels in
r154420.
Since the whole point of this was to improve -O0, it's silly to keep
the complexity at all.
llvm-svn: 199302
|
| |
|
|
|
|
| |
instead of merely being close to the real world to mislead people. This now matches the test.
llvm-svn: 199298
|
| |
|
|
|
|
|
|
|
|
| |
This C++ feature has been marked complete since r191549, but the documentation
claimed it wasn't supported at all and the extension check misreported it as
being available in C.
No regression test; this was a short-lived typo.
llvm-svn: 199292
|
| |
|
|
|
|
|
|
|
|
|
| |
Changes made in r192200 fixed PR16992, which requested fixit suggesting
parenthesis if sizeof is followed by type-id. However expression in form
T() followed by ')' was incorrectly considered as a type-id if 'T' is
typedef name. This change fixes this case.
Differential Revision: http://llvm-reviews.chandlerc.com/D2440
llvm-svn: 199284
|
| |
|
|
|
|
|
| |
Continue to accept the old name for a while to make it an easier transition
for people who rely on this.
llvm-svn: 199283
|
| |
|
|
|
|
|
|
| |
This is a follow-up to r199260. On ARM hosts, we were attempting to run
tests with triples such as armv7l-unknown-win32. This expands that fix to
cover all non-x86 targets since we only support MS ABI on x86.
llvm-svn: 199280
|
| |
|
|
| |
llvm-svn: 199278
|
| |
|
|
| |
llvm-svn: 199277
|
| |
|
|
|
|
|
| |
Long term we should make -triple arm7l-*-win32 do something sensible,
but for now it's broken and untested.
llvm-svn: 199260
|
| |
|
|
| |
llvm-svn: 199258
|
| |
|
|
| |
llvm-svn: 199257
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Someone recently wasted some time not realising that "-###" didn't
actually execute the commands it printed, and suggested a
documentation tweak.
Having made the same mistake myself on at least one occasion, I
sympathise. So here it is. Any kibitzing on an even better text
welcome.
llvm-svn: 199256
|
| |
|
|
|
|
|
| |
-Wselector detects an unimplemented method used
in an @selector expression. // rdar://15781538
llvm-svn: 199255
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This makes the C++ ABI depend entirely on the target: MS ABI for -win32 triples,
Itanium otherwise. It's no longer possible to do weird combinations.
To be able to run a test with a specific ABI without constraining it to a
specific triple, new substitutions are added to lit: %itanium_abi_triple and
%ms_abi_triple can be used to get the current target triple adjusted to the
desired ABI. For example, if the test suite is running with the i686-pc-win32
target, %itanium_abi_triple will expand to i686-pc-mingw32.
Differential Revision: http://llvm-reviews.chandlerc.com/D2545
llvm-svn: 199250
|
| |
|
|
|
|
|
|
|
|
|
| |
These functions have the same constness properties of the normal libm
functions, which allows LLVM to optimise code better in general. There
are also a couple of specific optimisations that only trigger when
these are properly marked.
rdar://problem/13729466
llvm-svn: 199249
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Better describe the flag that enables drop-in MSVC compatibility, including
ability to parse MS standard headers. This is intended to distinguish it from
-fms-extensions, the more established and 'gentler' flag also supported by GCC.
The new wording matches up with the internal description introduced in r198936.
Still room for improvement (e.g. C++ is part of the product name, yet the flag
also applies to C) but it's a step forward from "Microsoft mode".
llvm-svn: 199247
|
| |
|
|
| |
llvm-svn: 199230
|
| |
|
|
|
|
| |
parameter because the required information is encoded in the spelling. Added an appropriate subject to the attribute, and simplified the semantic checking (which will likely be expanded upon in a future patch). Also, removed the GNU spelling since it was unsupported in the first place.
llvm-svn: 199229
|
| |
|
|
|
|
| |
PR18472
llvm-svn: 199227
|
| |
|
|
|
|
|
| |
This allows the analyzer to handle properties with C++ class type,
finishing up the FIXME from r198953.
llvm-svn: 199226
|
| |
|
|
|
|
|
|
|
|
|
| |
Previously, the synthesized AST contained an rvalue DeclRefExpr for 'self'.
Now, it has an lvalue DeclRefExpr wrapped in an lvalue-to-rvalue
ImplicitCastExpr, which is what's generated when an ivar access is written
in the source.
No (intended) functionality change.
llvm-svn: 199225
|
| |
|
|
|
|
|
| |
With the old linkage types removed, set the linkage to external for both
dllimport and dllexport to reflect what's currently supported.
llvm-svn: 199220
|
| |
|
|
|
|
|
| |
The ClangCheck tool has changed and no longer is exactly equivalent to the
code pasted in the doc.
llvm-svn: 199215
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Full language modes usually get listed before minor language extensions in
LangOpts, so that subsequent sub-modes can predicate on the major modes.
This also lends to a cleanup in CompilerInvocation to better indicate to the
reader that MSVCCompat is a superset of MicrosoftExt.
Cleanup only.
llvm-svn: 199210
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
There's been long-standing confusion over the role of these two options. This
commit makes the necessary changes to differentiate them clearly, following up
from r198936.
MicrosoftExt (aka. fms-extensions):
Enable largely unobjectionable Microsoft language extensions to ease
portability. This mode, also supported by gcc, is used for building software
like FreeBSD and Linux kernel extensions that share code with Windows drivers.
MSVCCompat (aka. -fms-compatibility, formerly MicrosoftMode):
Turn on a special mode supporting 'heinous' extensions for drop-in
compatibility with the Microsoft Visual C++ product. Standards-compilant C and
C++ code isn't guaranteed to work in this mode. Implies MicrosoftExt.
Note that full -fms-compatibility mode is currently enabled by default on the
Windows target, which may need tuning to serve as a reasonable default.
See cfe-commits for the full discourse, thread 'r198497 - Move MS predefined
type_info out of InitializePredefinedMacros'
No change in behaviour.
llvm-svn: 199209
|
| |
|
|
| |
llvm-svn: 199208
|
| |
|
|
|
|
| |
XFAILing.
llvm-svn: 199201
|
| |
|
|
| |
llvm-svn: 199199
|
| |
|
|
|
|
|
|
|
|
|
|
| |
We cannot simply change the start column to accomodate for the @ in an
ObjC string literal as that will make clang-format happily violate the
column limit.
Use a different workaround instead. However, a better long-term
solution might be to join the @ and the rest of the literal into a
single token.
llvm-svn: 199198
|
| |
|
|
|
|
|
| |
This test provides definitions of size_t which are at odds with
-fms-compatibility. Disable this test on those builders (for now).
llvm-svn: 199196
|
| |
|
|
|
|
|
| |
Builders that have -fms-compatibility on by default define size_t implicitly.
Tests that provide conflicting definitions would cause unintended failures.
llvm-svn: 199195
|
| |
|
|
|
|
|
|
| |
MSVC defines size_t without any explicit declarations. This change
allows us to be compatible with TUs that depend on this declaration
appearing from nowhere.
llvm-svn: 199190
|
| |
|
|
| |
llvm-svn: 199189
|
| |
|
|
|
|
|
| |
Pad these structs up so they are sret-returned even on that
architecture.
llvm-svn: 199188
|
| |
|
|
| |
llvm-svn: 199177
|
| |
|
|
| |
llvm-svn: 199176
|
| |
|
|
|
|
| |
Instead of mapping them to their semantics as a custom part of the parser, they instead map declaratively through the rest of the attribute system.
llvm-svn: 199175
|
| |
|
|
|
|
|
|
|
| |
This patch makes a small behavioral change to the interaction between
pack and alignment. Specifically it makes __declspec(align()) on a
field change that field's alignment without respect to pack but the
alignment change to the record alignment as a whole still obeys pack.
llvm-svn: 199172
|
| |
|
|
|
|
|
|
|
| |
Record layout will tell us the offset of a shared vbptr inside a
non-virtual base.
No functionality change.
llvm-svn: 199171
|
| |
|
|
|
|
|
|
| |
consumable objects. These are useful for implementing error codes that
must be checked. Patch also includes some significant refactoring, which was
necesary to implement the new behavior.
llvm-svn: 199169
|
| |
|
|
|
|
|
|
|
|
| |
Although VBPtrs were being placed correctly by the ms-abi layout engine,
their offsets were being improperly reported to the ASTRecordLayout
builder due to a bug. This patch fixes that and fixes the test cases to
use the correct values.
y
llvm-svn: 199168
|
| |
|
|
|
|
|
|
| |
Fixes PR18435, where we generated a base ctor instead of a complete
ctor, and so failed to construct virtual bases when constructing the
complete object.
llvm-svn: 199160
|
| |
|
|
|
|
|
|
| |
This patch moves the check for pragma pack until after the application
of __declspec align to before pragma pack. This causes observable
changes in the use of tail padding for bases. A test case is included.
llvm-svn: 199154
|
| |
|
|
|
|
| |
For example, don't fall back in /P (preprocess) mode.
llvm-svn: 199153
|
| |
|
|
|
|
|
|
|
|
|
|
| |
so bump the minimum version in the standalone Clang CMake project as
well.
As I mentioned on the LLVM commit version of this, if this causes any
trouble for folks, just let me know. I'm trying to avoid re-implementing
functionality in CMake, but I will if there are problems using the newer
versions.
llvm-svn: 199152
|
| |
|
|
| |
llvm-svn: 199151
|