Closed 4ntoine closed 8 years ago
Probably fallout for the fix from #214. We probably have to copy the data layout string to clang
.
Should be fixed in this avr-llvm/clang commit
https://github.com/avr-llvm/clang/commit/c6fdb09fb9bc5cf5c4b52b2d6f39e6349e942f3b
updated clang but now it can't be compiled:
[ 85%] Building CXX object tools/clang/lib/AST/CMakeFiles/clangAST.dir/StmtViz.cpp.o
[ 85%] Building CXX object tools/clang/lib/Sema/CMakeFiles/clangSema.dir/SemaTemplateInstantiateDecl.cpp.o
[ 85%] Building CXX object tools/clang/lib/Sema/CMakeFiles/clangSema.dir/SemaTemplateVariadic.cpp.o
[ 85%] Building CXX object tools/clang/lib/CodeGen/CMakeFiles/clangCodeGen.dir/CodeGenFunction.cpp.o
[ 85%] Building CXX object tools/clang/lib/AST/CMakeFiles/clangAST.dir/TemplateBase.cpp.o
/Volumes/Transcend/dev/src/llvm-avr/llvm/tools/clang/lib/CodeGen/CodeGenAction.cpp:263:48: error: no type named
'OptimizationRemark' in namespace 'llvm'
void OptimizationRemarkHandler(const llvm::OptimizationRemark &D);
~~~~~~^
/Volumes/Transcend/dev/src/llvm-avr/llvm/tools/clang/lib/CodeGen/CodeGenAction.cpp:264:48: error: no type named
'OptimizationRemarkMissed' in namespace 'llvm'
void OptimizationRemarkHandler(const llvm::OptimizationRemarkMissed &D);
~~~~~~^
/Volumes/Transcend/dev/src/llvm-avr/llvm/tools/clang/lib/CodeGen/CodeGenAction.cpp:265:48: error: no type named
'OptimizationRemarkAnalysis' in namespace 'llvm'
void OptimizationRemarkHandler(const llvm::OptimizationRemarkAnalysis &D);
~~~~~~^
/Volumes/Transcend/dev/src/llvm-avr/llvm/tools/clang/lib/CodeGen/CodeGenAction.cpp:267:21: error: no type named
'OptimizationRemarkAnalysisFPCommute' in namespace 'llvm'
const llvm::OptimizationRemarkAnalysisFPCommute &D);
~~~~~~^
/Volumes/Transcend/dev/src/llvm-avr/llvm/tools/clang/lib/CodeGen/CodeGenAction.cpp:269:21: error: no type named
'OptimizationRemarkAnalysisAliasing' in namespace 'llvm'
const llvm::OptimizationRemarkAnalysisAliasing &D);
~~~~~~^
/Volumes/Transcend/dev/src/llvm-avr/llvm/tools/clang/lib/CodeGen/CodeGenAction.cpp:533:17: error: no type named
'OptimizationRemark' in namespace 'llvm'
const llvm::OptimizationRemark &D) {
~~~~~~^
/Volumes/Transcend/dev/src/llvm-avr/llvm/tools/clang/lib/CodeGen/CodeGenAction.cpp:542:17: error: no type named
'OptimizationRemarkMissed' in namespace 'llvm'
const llvm::OptimizationRemarkMissed &D) {
~~~~~~^
/Volumes/Transcend/dev/src/llvm-avr/llvm/tools/clang/lib/CodeGen/CodeGenAction.cpp:553:17: error: no type named
'OptimizationRemarkAnalysis' in namespace 'llvm'
const llvm::OptimizationRemarkAnalysis &D) {
~~~~~~^
/Volumes/Transcend/dev/src/llvm-avr/llvm/tools/clang/lib/CodeGen/CodeGenAction.cpp:566:17: error: no type named
'OptimizationRemarkAnalysisFPCommute' in namespace 'llvm'
const llvm::OptimizationRemarkAnalysisFPCommute &D) {
~~~~~~^
/Volumes/Transcend/dev/src/llvm-avr/llvm/tools/clang/lib/CodeGen/CodeGenAction.cpp:579:17: error: no type named
'OptimizationRemarkAnalysisAliasing' in namespace 'llvm'
const llvm::OptimizationRemarkAnalysisAliasing &D) {
~~~~~~^
/Volumes/Transcend/dev/src/llvm-avr/llvm/tools/clang/lib/CodeGen/CodeGenAction.cpp:623:36: error: use of undeclared
identifier 'OptimizationRemark'; did you mean 'DK_OptimizationRemark'?
OptimizationRemarkHandler(cast<OptimizationRemark>(DI));
^~~~~~~~~~~~~~~~~~
DK_OptimizationRemark
/Volumes/Transcend/dev/src/llvm-avr/llvm/include/llvm/IR/DiagnosticInfo.h:59:3: note: 'DK_OptimizationRemark' declared
here
DK_OptimizationRemark,
^
/Volumes/Transcend/dev/src/llvm-avr/llvm/tools/clang/lib/CodeGen/CodeGenAction.cpp:623:31: error: no matching function
for call to 'cast'
OptimizationRemarkHandler(cast<OptimizationRemark>(DI));
^~~~~~~~~~~~~~~~~~~~~~~~
/Volumes/Transcend/dev/src/llvm-avr/llvm/include/llvm/Support/Casting.h:222:1: note: candidate template ignored:
invalid explicitly-specified argument for template parameter 'X'
cast(const Y &Val) {
^
/Volumes/Transcend/dev/src/llvm-avr/llvm/include/llvm/Support/Casting.h:229:44: note: candidate template ignored:
invalid explicitly-specified argument for template parameter 'X'
inline typename cast_retty<X, Y>::ret_type cast(Y &Val) {
^
/Volumes/Transcend/dev/src/llvm-avr/llvm/include/llvm/Support/Casting.h:236:46: note: candidate template ignored:
invalid explicitly-specified argument for template parameter 'X'
inline typename cast_retty<X, Y *>::ret_type cast(Y *Val) {
^
/Volumes/Transcend/dev/src/llvm-avr/llvm/tools/clang/lib/CodeGen/CodeGenAction.cpp:628:36: error: use of undeclared
identifier 'OptimizationRemarkMissed'; did you mean 'DK_OptimizationRemarkMissed'?
OptimizationRemarkHandler(cast<OptimizationRemarkMissed>(DI));
^~~~~~~~~~~~~~~~~~~~~~~~
DK_OptimizationRemarkMissed
/Volumes/Transcend/dev/src/llvm-avr/llvm/include/llvm/IR/DiagnosticInfo.h:60:3: note: 'DK_OptimizationRemarkMissed'
declared here
DK_OptimizationRemarkMissed,
^
/Volumes/Transcend/dev/src/llvm-avr/llvm/tools/clang/lib/CodeGen/CodeGenAction.cpp:628:31: error: no matching function
for call to 'cast'
OptimizationRemarkHandler(cast<OptimizationRemarkMissed>(DI));
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Volumes/Transcend/dev/src/llvm-avr/llvm/include/llvm/Support/Casting.h:222:1: note: candidate template ignored:
invalid explicitly-specified argument for template parameter 'X'
cast(const Y &Val) {
^
/Volumes/Transcend/dev/src/llvm-avr/llvm/include/llvm/Support/Casting.h:229:44: note: candidate template ignored:
invalid explicitly-specified argument for template parameter 'X'
inline typename cast_retty<X, Y>::ret_type cast(Y &Val) {
^
/Volumes/Transcend/dev/src/llvm-avr/llvm/include/llvm/Support/Casting.h:236:46: note: candidate template ignored:
invalid explicitly-specified argument for template parameter 'X'
inline typename cast_retty<X, Y *>::ret_type cast(Y *Val) {
^
/Volumes/Transcend/dev/src/llvm-avr/llvm/tools/clang/lib/CodeGen/CodeGenAction.cpp:633:36: error: use of undeclared
identifier 'OptimizationRemarkAnalysis'; did you mean 'DK_OptimizationRemarkAnalysis'?
OptimizationRemarkHandler(cast<OptimizationRemarkAnalysis>(DI));
^~~~~~~~~~~~~~~~~~~~~~~~~~
DK_OptimizationRemarkAnalysis
/Volumes/Transcend/dev/src/llvm-avr/llvm/include/llvm/IR/DiagnosticInfo.h:61:3: note: 'DK_OptimizationRemarkAnalysis'
declared here
DK_OptimizationRemarkAnalysis,
^
/Volumes/Transcend/dev/src/llvm-avr/llvm/tools/clang/lib/CodeGen/CodeGenAction.cpp:633:31: error: no matching function
for call to 'cast'
OptimizationRemarkHandler(cast<OptimizationRemarkAnalysis>(DI));
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Volumes/Transcend/dev/src/llvm-avr/llvm/include/llvm/Support/Casting.h:222:1: note: candidate template ignored:
invalid explicitly-specified argument for template parameter 'X'
cast(const Y &Val) {
^
/Volumes/Transcend/dev/src/llvm-avr/llvm/include/llvm/Support/Casting.h:229:44: note: candidate template ignored:
invalid explicitly-specified argument for template parameter 'X'
inline typename cast_retty<X, Y>::ret_type cast(Y &Val) {
^
/Volumes/Transcend/dev/src/llvm-avr/llvm/include/llvm/Support/Casting.h:236:46: note: candidate template ignored:
invalid explicitly-specified argument for template parameter 'X'
inline typename cast_retty<X, Y *>::ret_type cast(Y *Val) {
^
/Volumes/Transcend/dev/src/llvm-avr/llvm/tools/clang/lib/CodeGen/CodeGenAction.cpp:638:36: error: use of undeclared
identifier 'OptimizationRemarkAnalysisFPCommute'; did you mean 'DK_OptimizationRemarkAnalysisFPCommute'?
OptimizationRemarkHandler(cast<OptimizationRemarkAnalysisFPCommute>(DI));
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
DK_OptimizationRemarkAnalysisFPCommute
/Volumes/Transcend/dev/src/llvm-avr/llvm/include/llvm/IR/DiagnosticInfo.h:62:3: note:
'DK_OptimizationRemarkAnalysisFPCommute' declared here
DK_OptimizationRemarkAnalysisFPCommute,
^
/Volumes/Transcend/dev/src/llvm-avr/llvm/tools/clang/lib/CodeGen/CodeGenAction.cpp:638:31: error: no matching function
for call to 'cast'
OptimizationRemarkHandler(cast<OptimizationRemarkAnalysisFPCommute>(DI));
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Volumes/Transcend/dev/src/llvm-avr/llvm/include/llvm/Support/Casting.h:222:1: note: candidate template ignored:
invalid explicitly-specified argument for template parameter 'X'
cast(const Y &Val) {
^
/Volumes/Transcend/dev/src/llvm-avr/llvm/include/llvm/Support/Casting.h:229:44: note: candidate template ignored:
invalid explicitly-specified argument for template parameter 'X'
inline typename cast_retty<X, Y>::ret_type cast(Y &Val) {
^
/Volumes/Transcend/dev/src/llvm-avr/llvm/include/llvm/Support/Casting.h:236:46: note: candidate template ignored:
invalid explicitly-specified argument for template parameter 'X'
inline typename cast_retty<X, Y *>::ret_type cast(Y *Val) {
^
/Volumes/Transcend/dev/src/llvm-avr/llvm/tools/clang/lib/CodeGen/CodeGenAction.cpp:643:36: error: use of undeclared
identifier 'OptimizationRemarkAnalysisAliasing'; did you mean 'DK_OptimizationRemarkAnalysisAliasing'?
OptimizationRemarkHandler(cast<OptimizationRemarkAnalysisAliasing>(DI));
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
DK_OptimizationRemarkAnalysisAliasing
/Volumes/Transcend/dev/src/llvm-avr/llvm/include/llvm/IR/DiagnosticInfo.h:63:3: note:
'DK_OptimizationRemarkAnalysisAliasing' declared here
DK_OptimizationRemarkAnalysisAliasing,
^
fatal error: too many errors emitted, stopping now [-ferror-limit=]
20 errors generated.
make[2]: *** [tools/clang/lib/CodeGen/CMakeFiles/clangCodeGen.dir/CodeGenAction.cpp.o] Error 1
make[2]: *** Waiting for unfinished jobs....
[ 85%] Building CXX object tools/clang/lib/Sema/CMakeFiles/clangSema.dir/SemaType.cpp.o
[ 85%] Building CXX object tools/clang/lib/AST/CMakeFiles/clangAST.dir/TemplateName.cpp.o
[ 85%] Building CXX object tools/clang/lib/AST/CMakeFiles/clangAST.dir/Type.cpp.o
[ 85%] Building CXX object tools/clang/lib/AST/CMakeFiles/clangAST.dir/TypeLoc.cpp.o
[ 87%] Building CXX object tools/clang/lib/AST/CMakeFiles/clangAST.dir/TypePrinter.cpp.o
[ 88%] Building CXX object tools/clang/lib/Sema/CMakeFiles/clangSema.dir/TypeLocBuilder.cpp.o
make[1]: *** [tools/clang/lib/CodeGen/CMakeFiles/clangCodeGen.dir/all] Error 2
[ 88%] Building CXX object tools/clang/lib/AST/CMakeFiles/clangAST.dir/VTableBuilder.cpp.o
[ 88%] Building CXX object tools/clang/lib/AST/CMakeFiles/clangAST.dir/VTTBuilder.cpp.o
[ 88%] Linking CXX static library ../../../../lib/libclangSema.a
[ 88%] Linking CXX static library ../../../../lib/libclangAST.a
[ 88%] Built target clangSema
[ 88%] Built target clangAST
make: *** [all] Error 2
MBA-Anton:build asmirnov$ cd ../llvm/tools/clang/
MBA-Anton:clang asmirnov$ git log -1
commit c6fdb09fb9bc5cf5c4b52b2d6f39e6349e942f3b
Author: Dylan McKay <dylanmckay34@gmail.com>
Date: Thu Sep 29 02:29:48 2016 +1300
[AVR] Update the data layout
We had previously updated the data layout in AVR-LLVM commit
5f12f20bafa50b178395177cb98aef7de5f68e73.
Seems weird, I'm on the same clang
commit as you, and my build passes successfully. Perhaps you need to pull changes on AVR-LLVM's avr-support
branch
it was not clear that i have to update llvm too. after updating i was able to compile avr-llvm/clang and compile blink.cpp file