| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
builtin headers are no longer going to receive the old 'implicit extern
"C" block' semantics. This hint is actually ignored by both Clang and
GCC at this point, and Clang's own builtin headers can simply be changed
if there is any issue with this. Clang should be free to include these
however it wants, and so shorter and simpler is better.
Note: *nothing* is changing about the *system* stddef.h include. That
should always have the exact same include semantics, whether with Clang
or GCC or any other compiler. Only the compiler-builtin header search
path is changing.
If anyone knows of some risk that this introduces that I've not thought
of, please chime in. So far, only Windows has switched to the Brave New
World, but others should be switching soon.
llvm-svn: 143806
|
| |
|
|
| |
llvm-svn: 142883
|
| |
|
|
| |
llvm-svn: 142881
|
| |
|
|
|
|
| |
-std=c++0x. Patch by Ahmed Charles!
llvm-svn: 141900
|
| |
|
|
| |
llvm-svn: 141806
|
| |
|
|
|
|
| |
fixes http://llvm.org/PR11120
llvm-svn: 141788
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
increasingly prevailing case to the point that new features
like ARC don't even support the fragile ABI anymore.
This required a little bit of reshuffling with exceptions
because a check was assuming that ObjCNonFragileABI was
only being set in ObjC mode, and that's actually a bit
obnoxious to do.
Most, though, it involved a perl script to translate a ton
of test cases.
Mostly no functionality change for driver users, although
there are corner cases with disabling language-specific
exceptions that we should handle more correctly now.
llvm-svn: 140957
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
predefines based on the output of GCC as well as the CPU predefines.
Invert tests for __AVX__, Clang's AVX feature is hard coded off still.
Switch Atom from 'SSE3' to 'SSSE3'. This matches GCC's behavior, Intel's
documentation, and ICC's documentation (such as I could dig up).
Switch Athlon and Geode to enable 3dnowa rather than just 3dnow and
nothing (resp.).
llvm-svn: 140692
|
| |
|
|
|
|
|
|
|
|
| |
automate the process of updating and generating these tests.
If anyone is really interested, I can check my scripts for generating
this test in, but its a horrible pile of shell... Not sure its really
worth it.
llvm-svn: 140691
|
| |
|
|
|
|
| |
__tune_...__ define as well.
llvm-svn: 140690
|
| |
|
|
|
|
| |
Add 64-bit preprocessor macro tests.
llvm-svn: 140688
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
is *very* much a WIP that I'll be refining over the next several
commits, but I need to get this checkpoint in place for sanity.
This also adds a much more comprehensive test for architecture macros,
which is roughly generated by inspecting the behavior of a trunk build
of GCC. It still requires some massaging, but eventually I'll even check
in the script that generates these so that others can use it to append
more tests for more architectures, etc.
Next up is a bunch of simplification of the Targets.cpp code, followed
by a lot more test cases once we can reject invalid architectures.
llvm-svn: 140673
|
| |
|
|
|
|
|
| |
Only predefine the OBJC_ZEROCOST_EXCEPTIONS macro if Objective-C
exceptions are turned on. Fixes PR10910.
llvm-svn: 139496
|
| |
|
|
|
|
|
|
| |
suppress it in system headers. And it is not a good idea to suppress it in system headers. (This was originally changed in r134996 to implement -MG.)
Fixes <rdar://10041960>. And also brings down the number of warnings without a flag by one :)
llvm-svn: 138842
|
| |
|
|
|
|
|
|
|
|
|
| |
1. Be more tolerant of comments in -CC (comment-preserving) mode. We were missing a few cases.
2. Make sure to expand the second FOO in "#if defined FOO FOO". (See also
r97253, which addressed the case of "#if defined(FOO FOO".)
Fixes PR10286.
llvm-svn: 136748
|
| |
|
|
| |
llvm-svn: 134928
|
| |
|
|
| |
llvm-svn: 134927
|
| |
|
|
| |
llvm-svn: 134925
|
| |
|
|
|
|
| |
file. rdar://9745065
llvm-svn: 134919
|
| |
|
|
|
|
| |
#include_next on mingw.
llvm-svn: 134896
|
| |
|
|
|
|
|
|
|
|
|
| |
normal token.
e.g.
#define M(x) A x B
M(##) // should expand to 'A ## B', not 'AB'
llvm-svn: 134588
|
| |
|
|
| |
llvm-svn: 133633
|
| |
|
|
| |
llvm-svn: 133437
|
| |
|
|
|
|
|
|
|
|
| |
lexer is not a paste operator, it is a normal token. This fixes a conformance
issue shown here:
http://p99.gforge.inria.fr/c99-conformance/c99-conformance-clang-2.9.html
and it defines away the crash from before.
llvm-svn: 133005
|
| |
|
|
| |
llvm-svn: 133003
|
| |
|
|
| |
llvm-svn: 131882
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
header. Getting it in the wrong order generated incorrect line markers in -E
mode. In the testcase from PR9861 we used to generate:
# 1 "test.c" 2
# 1 "./foobar.h" 1
# 0 "./foobar.h"
# 0 "./foobar.h" 3
# 2 "test.c" 2
now we properly produce:
# 1 "test.c" 2
# 1 "./foobar.h" 1
# 1 "./foobar.h" 3
# 2 "test.c" 2
This fixes PR9861.
llvm-svn: 131871
|
| |
|
|
|
|
| |
rdar://9475098.
llvm-svn: 131788
|
| |
|
|
|
|
| |
particular, make sure to handle WCHAR_MIN correctly.
llvm-svn: 130618
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
defines to real types.
Otherwise statements like:
__int64 var = __int64(0);
would be expanded to:
long long var = long long(0);
and fail to compile.
llvm-svn: 130369
|
| |
|
|
|
|
| |
from dgregor.
llvm-svn: 130066
|
| |
|
|
| |
llvm-svn: 129907
|
| |
|
|
|
|
| |
Luis Felipe Strano Moraes!
llvm-svn: 129559
|
| |
|
|
|
|
| |
- Please never ever ever ever write a tool that sniffs this.
llvm-svn: 128599
|
| |
|
|
|
|
|
|
|
|
|
| |
This is basically the same idea as the warning on uninitialized uses of
fields within an initializer list. As such, it is on by default and
under -Wuninitialized.
Original patch by Richard Trieu, with some massaging from me on the
wording and grouping of the diagnostics.
llvm-svn: 128376
|
| |
|
|
|
|
| |
comments.
llvm-svn: 127910
|
| |
|
|
|
|
|
|
| |
The previous name was inaccurate as this token in fact appears at
the end of every preprocessing directive, not just macro definitions.
No functionality change, except for a diagnostic tweak.
llvm-svn: 126631
|
| |
|
|
| |
llvm-svn: 125473
|
| |
|
|
| |
llvm-svn: 124279
|
| |
|
|
|
|
|
|
| |
duplicate
definition by command line options. Fixes rdar://8875916.
llvm-svn: 123767
|
| |
|
|
| |
llvm-svn: 123320
|
| |
|
|
|
|
| |
that contains the ## operator.
llvm-svn: 122946
|
| |
|
|
|
|
|
|
| |
SourceManager::isBeforeInTranslationUnit().
Fixes rdar://8790245 and http://llvm.org/PR8821.
llvm-svn: 122536
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Diagnostic pragmas are broken because we don't keep track of the diagnostic state changes and we only check the current/latest state.
Problems manifest if a diagnostic is emitted for a source line that has different diagnostic state than the current state; this can affect
a lot of places, like C++ inline methods, template instantiations, the lexer, etc.
Fix the issue by having the Diagnostic object keep track of the source location of the pragmas so that it is able to know what is the diagnostic state at any given source location.
Fixes rdar://8365684.
llvm-svn: 121873
|
| |
|
|
|
|
|
| |
independent of the underlying system. Let me know if any of these are too
aggressive.
llvm-svn: 119345
|
| |
|
|
|
|
|
|
|
|
|
| |
own subcategory, -Wconstant-conversion, which is on by default.
Tweak the constant folder to give better results in the invalid
case of a negative shift amount.
Implements rdar://problem/6792488
llvm-svn: 118636
|
| |
|
|
| |
llvm-svn: 117000
|
| |
|
|
|
|
|
|
| |
"#pragma push_macro" uses. This
fixes a potential memory leak.
llvm-svn: 116826
|
| |
|
|
|
|
|
| |
it comes back, it will be largely a rewrite, so keeping the old codebase
in tree isn't helping anyone.
llvm-svn: 116191
|
| |
|
|
| |
llvm-svn: 114318
|