fix a couple of problems with section attributes:
1. Passing something that isn't a string used to cause: "argument to annotate attribute was not a string literal" make it say "section attribute" instead. 2. Fix the location of the above message to point to the bad argument instead of the section token. 3. Implement rdar://4341926, by diagnosing invalid section specifiers in the frontend rather than letting them slip all the way to the assembler (a QoI win). An example of #3 is that we used to produce something like this: /var/folders/n7/n7Yno9ihEm894640nJdSQU+++TI/-Tmp-//ccFPFGtT.s:2:Expected comma after segment-name /var/folders/n7/n7Yno9ihEm894640nJdSQU+++TI/-Tmp-//ccFPFGtT.s:2:Rest of line ignored. 1st junk character valued 46 (.). Daniel improved clang to use llvm_report_error, so now we got: $ clang t.c -c fatal error: error in backend: Global variable 'x' has an invalid section specifier 'sadf': mach-o section specifier requires a segment and section separated by a comma. with no loc info. Now we get: $ clang t.c -fsyntax-only t.c:4:30: error: argument to 'section' attribute is not valid for this target: mach-o section specifier requires a segment and section separated by a comma int x __attribute__((section("sadf"))); ^ which is nice :) git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@78586 91177308-0d34-0410-b5e6-96231b3b80d8
Showing
- include/clang/Basic/DiagnosticSemaKinds.td 4 additions, 2 deletionsinclude/clang/Basic/DiagnosticSemaKinds.td
- include/clang/Basic/TargetInfo.h 20 additions, 2 deletionsinclude/clang/Basic/TargetInfo.h
- lib/Basic/Targets.cpp 13 additions, 1 deletionlib/Basic/Targets.cpp
- lib/Sema/SemaDeclAttr.cpp 20 additions, 10 deletionslib/Sema/SemaDeclAttr.cpp
- test/Sema/attr-section.c 10 additions, 0 deletionstest/Sema/attr-section.c
- tools/index-test/CMakeLists.txt 1 addition, 0 deletionstools/index-test/CMakeLists.txt
- tools/index-test/Makefile 1 addition, 1 deletiontools/index-test/Makefile
- tools/wpa/CMakeLists.txt 1 addition, 0 deletionstools/wpa/CMakeLists.txt
- tools/wpa/Makefile 1 addition, 1 deletiontools/wpa/Makefile
Loading
Please register or sign in to comment