Hi Reinhard!
We should definitely look into these three problems within the next few
weeks, but I don't regard them as very critical, because they affect
only special use cases: Advice for user-defined "operator new"
implementations and the code generation for get/set advice, which is a
feature that is only enabled with --data_joinpoints and still a bit
experimental.
How to proceed? Can we/you live with these problems for now and update
later or is there no update option and we have to fix it sooner?
Cheers,
Olaf
On 08/24/2017 00:16, Reinhard Tartler wrote:
>
>
> On 08/23/2017 12:07 PM, Olaf Spinczyk wrote:
>> Hi!
>>
>> You can generate the config file easily with ag++ --gen_config. Sorry
>> for the inconvenience. The background is that when I wrote the first
>> ac++ tests, I did not want the makefile to depend on ag++.
>>
>> We should change that sooner or later, because it is obviously confusing.
>
> Not a problem.
>
> Progress! With a "correct" PUMA CONFIG, I now get further, but there seem to
> be
> genuine test failures. Are they concerning or shall I ignore them for the
> debian
> package?
>
> They look like this:
>
> /usr/bin/make -C tests -s all
> make[2]: Entering directory
> '/build/aspectc++-rCVJRW/aspectc++-2.2+git20170823/AspectC++/tests'
> ...........................................[C:ExecAdviceNewDelete].................................................................................[D:Bug574].......[C:Bug598]........
>
>
> +---------+
> |ERRORS: |
> +---------+
>
> -----------------------------------------------------------------------------
> TEST: ExecAdviceNewDelete
> -----------------------------------------------------------------------------
> STDOUT:
> --------
> make[3]: Entering directory
> '/build/aspectc++-rCVJRW/aspectc++-2.2+git20170823/AspectC++/tests/ExecAdviceNewDelete'
> Weaving main.cc
> * Running ac++ 2.2
> * Handling Translation Unit `main.cc'.
> - Path "main.cc"
> - Parsing ...
> - Weaving Aspects Forward Declarations ...
> - Inserting namespace AC
> - Committing
> - Preparing introductions ...
> - Parsing again ...
> - Weaving access control bypass classes ...
> - Weaving Join Points ...
> Advicecode manipulation
> Collecting Advice
> Setting up thisJoinPoint for aspectof
> Create pointcut expression tree
> Matching joinpoints
> Aspect ordering ...
> Creating project repository 'repo.acp'
> Type Check Functions
> Access Join Points
> Execution Join Points
> void *operator new(unsigned long int)
> void *operator new[](unsigned long int)
> void operator delete(void *)
> void operator delete[](void *)
> void A::operator delete(void *)
> void *C::operator new(unsigned long int)
> void C::operator delete(void *)
> Construction Join Points
> Destruction Join Points
> - Aspect Includes ...
> - Final cleanup
> - Committing
> * Inserting unit pro- and epilogues
> - Manipulating translation unit file main.cc
> * Updating #line directives of generated code fragments
> * Saving
> - Expanding project includes
> - Fixing #line directives
> - Path "main.acc"
> * Done
> Compiling main.acc
> ../Makefile.generic:80: recipe for target 'Junk/main.o' failed
> make[3]: Leaving directory
> '/build/aspectc++-rCVJRW/aspectc++-2.2+git20170823/AspectC++/tests/ExecAdviceNewDelete'
>
> STDERR:
> --------
> main.cc:5:30: warning: dynamic exception specifications are deprecated in
> C++11
> [-Wdeprecated]
> void *operator new (size_t ) throw(std::bad_alloc);
> ^~~~~
> main.cc:7:31: warning: dynamic exception specifications are deprecated in
> C++11
> [-Wdeprecated]
> void *operator new (size_t s) throw(std::bad_alloc) {
> ^~~~~
> main.cc: In function 'void* operator new(size_t)':
> main.cc:7:7: error: declaration of 'void* operator new(size_t) throw
> (std::bad_alloc)' has a different exception specifier
> void *operator new (size_t s) throw(std::bad_alloc) {
> ^~~~~~~~
> main.cc:5:7: note: from previous declaration 'void* operator new(std::size_t)'
> void *operator new (size_t ) throw(std::bad_alloc);
> ^~~~~~~~
> main.acc: In function 'void* operator new(std::size_t)':
> main.acc:147:61: warning: dynamic exception specifications are deprecated in
> C++11 [-Wdeprecated]
> typedef TJP__Znwm_0< void *, void, void, void *(::size_t)
> throw(std::bad_alloc), AC::TL< ::size_t, AC::TLE > > __TJP;
> ^~~~~
> main.cc: At global scope:
> main.cc:11:33: warning: dynamic exception specifications are deprecated in
> C++11
> [-Wdeprecated]
> void *operator new[] (size_t s) throw(std::bad_alloc) {
> ^~~~~
> main.acc: In function 'void* operator new [](std::size_t)':
> main.acc:198:61: warning: dynamic exception specifications are deprecated in
> C++11 [-Wdeprecated]
> typedef TJP__Znam_0< void *, void, void, void *(::size_t)
> throw(std::bad_alloc), AC::TL< ::size_t, AC::TLE > > __TJP;
> ^~~~~
> make[3]: *** [Junk/main.o] Error 1
>
>
> -----------------------------------------------------------------------------
> TEST: Bug574
> -----------------------------------------------------------------------------
> STDOUT:
> --------
> make[3]: Entering directory
> '/build/aspectc++-rCVJRW/aspectc++-2.2+git20170823/AspectC++/tests/Bug574'
> Weaving main.cc
> * Running ac++ 2.2
> * Handling Translation Unit `main.cc'.
> - Path "main.cc"
> - Parsing ...
> - Weaving Aspects Forward Declarations ...
> - Inserting namespace AC
> - Committing
> - Preparing introductions ...
> - Parsing again ...
> - Weaving access control bypass classes ...
> - Weaving Join Points ...
> Advicecode manipulation
> Collecting Advice
> Setting up thisJoinPoint for aspectof
> Create pointcut expression tree
> Matching joinpoints
> Aspect ordering ...
> Creating project repository 'repo.acp'
> Type Check Functions
> Access Join Points
> Get: bool Cyg_SchedThread::priority_inherited
> Get: int Cyg_SchedThread::original_priority
> Execution Join Points
> Construction Join Points
> Destruction Join Points
> - Aspect Includes ...
> - Final cleanup
> - Committing
> * Inserting unit pro- and epilogues
> - Manipulating translation unit file main.cc
> * Updating #line directives of generated code fragments
> * Saving
> - Expanding project includes
> - Fixing #line directives
> - Path "main.acc"
> * Done
> Compiling main.acc
> Linking
> make[3]: Leaving directory
> '/build/aspectc++-rCVJRW/aspectc++-2.2+git20170823/AspectC++/tests/Bug574'
> make[3]: Entering directory
> '/build/aspectc++-rCVJRW/aspectc++-2.2+git20170823/AspectC++/tests/Bug574'
> 1a2
>> int Cyg_SchedThread::original_priority
> ../Makefile.generic:48: recipe for target 'diff' failed
> make[3]: Leaving directory
> '/build/aspectc++-rCVJRW/aspectc++-2.2+git20170823/AspectC++/tests/Bug574'
>
> STDERR:
> --------
> make[3]: *** [diff] Error 1
>
>
> -----------------------------------------------------------------------------
> TEST: Bug598
> -----------------------------------------------------------------------------
> STDOUT:
> --------
> make[3]: Entering directory
> '/build/aspectc++-rCVJRW/aspectc++-2.2+git20170823/AspectC++/tests/Bug598'
> Weaving main.cc
> * Running ac++ 2.2
> * Handling Translation Unit `main.cc'.
> - Path "main.cc"
> - Parsing ...
> - Weaving Aspects Forward Declarations ...
> - Inserting namespace AC
> - Committing
> - Preparing introductions ...
> - Parsing again ...
> - Weaving access control bypass classes ...
> - Weaving Join Points ...
> Advicecode manipulation
> Collecting Advice
> Setting up thisJoinPoint for aspectof
> Create pointcut expression tree
> Matching joinpoints
> Aspect ordering ...
> Creating project repository 'repo.acp'
> Type Check Functions
> Access Join Points
> Get: char const arr[2]
> Execution Join Points
> Construction Join Points
> Destruction Join Points
> - Aspect Includes ...
> - Final cleanup
> - Committing
> * Inserting unit pro- and epilogues
> - Manipulating translation unit file main.cc
> * Updating #line directives of generated code fragments
> * Saving
> - Expanding project includes
> - Fixing #line directives
> - Path "main.acc"
> * Done
> Compiling main.acc
> ../Makefile.generic:80: recipe for target 'Junk/main.o' failed
> make[3]: Leaving directory
> '/build/aspectc++-rCVJRW/aspectc++-2.2+git20170823/AspectC++/tests/Bug598'
>
> STDERR:
> --------
> main.acc: In instantiation of 'TResult __Get__Z4mainv_1_0(TEntity&, AC::RT<T>)
> [with TResult = char; TEntity = const char]':
> main.cc:16:66: required from here
> main.acc:283:17: error: uninitialized const '__result_buffer' [-fpermissive]
> const TResult __result_buffer;
> ^~~~~~~~~~~~~~~
> main.acc:285:19: error: assignment of read-only variable '__result_buffer'
> __result_buffer = ::arr;
> ~~~~~~~~~~~~~~~~^~~~
> main.acc:285:19: error: invalid conversion from 'const char*' to 'char'
> [-fpermissive]
> make[3]: *** [Junk/main.o] Error 1
>
> Makefile:161: recipe for target 'all' failed
> make[2]: *** [all] Error 1
> make[2]: Leaving directory
> '/build/aspectc++-rCVJRW/aspectc++-2.2+git20170823/AspectC++/tests'
> Makefile:259: recipe for target 'testall' failed
> make[1]: *** [testall] Error 2
> make[1]: Leaving directory
> '/build/aspectc++-rCVJRW/aspectc++-2.2+git20170823/AspectC++'
> debian/rules:52: recipe for target 'test-builds' failed
>